node-peercast
Version:
PeerCast client for node.js
58 lines (57 loc) • 1.84 kB
JavaScript
var log4js = require('log4js');
var Atom = require('./atom');
var logger = log4js.getLogger();
var HELLO = 'helo';
var OLLEH = 'oleh';
var HELLO_AGENT = 'agnt';
var HELLO_OS_TYPE = 'ostp';
var HELLO_SESSION_ID = 'sid\0';
var HELLO_PORT = 'port';
var HELLO_PING = 'ping';
var HELLO_VERSION = 'ver\0';
var HELLO_BC_ID = 'bcid';
//var OLLEH_PONG = 'pong';
var OLLEH_REMOTE_IP = 'rip\0';
//var OLLEH_DISABLE = 'dis\0';
var QUIT = 'quit';
function toName(simpleName) {
switch (simpleName) {
case HELLO:
return 'hello';
case OLLEH:
return 'olleh';
case QUIT:
return 'quit';
default:
logger.warn('Unsupported name: ' + simpleName);
return simpleName;
}
}
exports.toName = toName;
function createHello(agent, osType, sessionId, port, ping, version, bcId) {
var atom = Atom.createContainer(HELLO);
atom.pushStringContent(HELLO_AGENT, agent);
atom.pushIntContent(HELLO_OS_TYPE, osType);
atom.pushGuidContent(HELLO_SESSION_ID, sessionId);
atom.pushShortContent(HELLO_PORT, port);
atom.pushShortContent(HELLO_PING, ping);
atom.pushIntContent(HELLO_VERSION, version);
atom.pushGuidContent(HELLO_BC_ID, bcId);
return atom;
}
exports.createHello = createHello;
function createOlleh(agent, sessionId, port, remoteIp, version) {
var atom = Atom.createContainer(OLLEH);
atom.pushStringContent(HELLO_AGENT, agent);
atom.pushGuidContent(HELLO_SESSION_ID, sessionId);
atom.pushShortContent(HELLO_PORT, port);
//atom.pushShortContent(HELLO_PONG, pong);
atom.pushIntContent(OLLEH_REMOTE_IP, remoteIp);
atom.pushIntContent(HELLO_VERSION, version);
return atom;
}
exports.createOlleh = createOlleh;
function createQuit() {
return Atom.createIntContent(QUIT, 0);
}
exports.createQuit = createQuit;