Add heartbeat calls in response to LOGIN_ACK

This commit is contained in:
Jonathon Wilson 2012-10-23 20:54:41 -06:00
parent 5e2bac6e95
commit ce23a04e94
3 changed files with 22 additions and 1 deletions

View File

@ -51,6 +51,12 @@
var data = {};
return client_container(msg.PING_REQUEST, route_to_client(client_id), data);
};
//
// Heartbeat message
factory.heartbeat = function() {
var data = {};
return client_container(msg.HEARTBEAT, route_to.SERVER, data);
};
// create a login message using user/pass
factory.login_with_user_pass = function(username, password) {

View File

@ -6,6 +6,7 @@
var JamKazam = context.JK.JamKazam = function() {
var app;
var logger = context.JK.logger;
var heartbeatInterval = null;
var subscribers = {}; // Keys are MessageType.MESSAGE values Values are lists of functions to call
/**
@ -64,6 +65,18 @@
}
}
function _handleLoginAck(header, payload) {
var heartbeatMS = payload.heartbeat_interval * 1000;
logger.debug("Login ACK. Setting up heartbeat every " + heartbeatMS + " MS");
heartbeatInterval = context.setInterval(_heartbeat, heartbeatMS);
}
function _heartbeat() {
logger.debug("...sending heartbeat");
message = context.JK.MessageFactory.heartbeat();
context.JK.JamServer.send(message);
}
/**
* Register for all known types, logging events as they happen, and
* notifying subscribers (see this.subscribe) as they occur.
@ -73,6 +86,8 @@
logger.debug("registering " + message);
context.JK.JamServer.registerMessageCallback(message, handleMessage);
}
// Specifically register a handler for LOGIN_ACK to setup the heartbeat calls.
context.JK.JamServer.registerMessageCallback(context.JK.MessageType.LOGIN_ACK, _handleLoginAck);
}
/**

View File

@ -53,7 +53,7 @@
* Register a simple console logger for all known message types.
*/
this.register = function() {
registerLoginPinger();
//registerLoginPinger();
};
};