Add a simple self-ping 5 times upon login as a test.

This commit is contained in:
Jonathon Wilson 2012-10-14 13:54:12 -06:00
parent ade0928bdc
commit 2c0690bb34
2 changed files with 46 additions and 3 deletions

View File

@ -19,6 +19,8 @@
LEAVE_MUSIC_SESSION_ACK : "LEAVE_MUSIC_SESSION_ACK",
HEARTBEAT : "HEARTBEAT",
TEST_SESSION_MESSAGE : "TEST_SESSION_MESSAGE",
PING_REQUEST: "PING_REQUEST",
PING_ACK: "PING_ACK",
SERVER_GENERIC_ERROR : "SERVER_GENERIC_ERROR",
SERVER_REJECTION_ERROR : "SERVER_REJECTION_ERROR"
};
@ -32,6 +34,13 @@
return body;
}
// ping the provided client_id
message_factory.ping = function(client_id) {
var data = {};
var target = CLIENT_TARGET_PREFIX + client_id;
return client_container(msg.PING_REQUEST, target, data);
};
// create a login message using user/pass
message_factory.login_with_user_pass = function(username, password) {
var login = { username : username , password : password };

View File

@ -11,20 +11,54 @@
if ("undefined" === typeof(context.JamServer))
return;
// Alias some of the globals for less typing.
var logger = context.JK.logger;
var server = context.JamServer;
var messages = context.Messages;
var msg_factory = context.message_factory;
var myClientId = null;
var myPingTimer = null;
var pingCount = 0;
var maxPings = 5;
function logMessage(messageType, payload) {
logger.debug(messageType + ": " + JSON.stringify(payload));
}
function pingMyself() {
if (!myClientId)
return;
pingCount++;
message = msg_factory.ping(myClientId);
server.send(message);
if (pingCount > maxPings) {
context.clearInterval(myPingTimer);
myPingTimer = null;
}
}
function loggedIn(messageType, payload) {
logger.debug('Logged In handler: ' + messageType + ':' + JSON.stringify(payload));
myClientId = payload.client_id;
myPingTimer = context.setInterval(pingMyself, 1000);
}
function registerLoginPinger() {
logger.debug("registering login -> pinger");
server.registerMessageCallback(messages.LOGIN_ACK, loggedIn);
}
/**
* Register a simple console logger for all known message types.
*/
this.register = function() {
for (var msg in context.Messages) {
logger.debug("registering " + msg);
context.JamServer.registerMessageCallback(msg, logMessage);
for (var message in messages) {
logger.debug("registering " + message);
context.JamServer.registerMessageCallback(message, logMessage);
}
registerLoginPinger();
};
};