Files
cheesy-arena-lite/static/js/cheesy-websocket.js
2014-07-06 23:22:27 -07:00

47 lines
1.2 KiB
JavaScript

// Copyright 2014 Team 254. All Rights Reserved.
// Author: pat@patfairbank.com (Patrick Fairbank)
//
// Shared code for initiating websocket connections back to the server for full-duplex communication.
var CheesyWebsocket = function(path, events) {
var that = this;
var url = "ws://" + window.location.hostname;
if (window.location.port != "") {
url += ":" + window.location.port;
}
url += path;
// Insert a default error-handling event if a custom one doesn't already exist.
if (!events.hasOwnProperty("error")) {
events.error = function(event) {
// Data is just an error string.
console.log(event.data);
}
}
// Insert an event to allow the server to force-reload the client.
events.reload = function(event) {
location.reload();
};
this.connect = function() {
this.websocket = $.websocket(url, {
open: function() {
console.log("Websocket connected to the server at " + url + ".")
},
close: function() {
console.log("Websocket lost connection to the server. Reconnecting in 3 seconds...");
setTimeout(that.connect, 3000);
},
events: events
});
};
this.send = function(type, data) {
this.websocket.send(type, data);
};
this.connect();
}