Skip to content

Instantly share code, notes, and snippets.

@RohitRox
Last active December 16, 2015 03:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RohitRox/5370354 to your computer and use it in GitHub Desktop.
Save RohitRox/5370354 to your computer and use it in GitHub Desktop.
websocket helper, managing websocket events and callbacks
var ws = new WebSocket("ws://localhost:8080/");
ws.onopen = function() {
this.send(JSON.stringify({event: "init",data: { c_wid: "51396e790662720c10000002" } }));
};
ws.onmessage = function(evt){
var json = JSON.parse(evt.data);
console.log(json);
this.dispatch(json.event, json.data);
};
var callbacks = {};
ws.dispatch = function(event_name, message){
console.log(event_name, message);
if(event_name=='init'){ return;}
var chain = callbacks[event_name];
if(typeof chain == 'undefined') return;
for(var i = 0; i < chain.length; i++){
chain[i]( message );
}
};
ws.launch = function(event_name, event_data,callback){
var payload = JSON.stringify({event:event_name, data: event_data});
callbacks[event_name] = callbacks[event_name] || [];
callbacks[event_name].push(callback);
this.send(payload);
};
var data = {some: 'data'};
// Usage
ws.launch("submit", data, function(data){ console.log(data);});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment