website with slop placeholders
This commit is contained in:
Executable
+111
@@ -0,0 +1,111 @@
|
||||
(function (root, factory) {
|
||||
if (typeof exports === 'object' && typeof module !== 'undefined') {
|
||||
module.exports = factory();
|
||||
} else if (typeof define === 'function' && define.amd) {
|
||||
define([], factory);
|
||||
} else {
|
||||
root.Connection = factory();
|
||||
}
|
||||
}(typeof self !== 'undefined' ? self : this, function () {
|
||||
|
||||
var Connection = {
|
||||
|
||||
auto_reconnect : false,
|
||||
established : false,
|
||||
|
||||
update_indicator : (status) => {
|
||||
var status_colors = {
|
||||
'offline' : 'red',
|
||||
'online' : 'lightgreen',
|
||||
'error' : 'DarkOrange',
|
||||
};
|
||||
$('#connection-status').text(status).css('color', status_colors[status] || 'gray');
|
||||
},
|
||||
|
||||
debug : true,
|
||||
auto_reconnect : true,
|
||||
cmd_waiting_rels : {},
|
||||
|
||||
server_url : '',
|
||||
|
||||
init : () => {
|
||||
new EventSystem(Connection);
|
||||
},
|
||||
|
||||
start : (url = null) => {
|
||||
|
||||
if(url) Connection.server_url = url;
|
||||
|
||||
Connection.update_indicator('offline');
|
||||
if(Connection.socket) Connection.socket.close();
|
||||
Connection.socket = new WebSocket(Connection.server_url);
|
||||
Connection.socket.onmessage = function(rawmsg) {
|
||||
var msg = JSON.parse(rawmsg.data);
|
||||
if(Connection.debug) console.log('CONNECTION MSG', msg);
|
||||
if(msg.type) Connection.trigger(msg.type, msg);
|
||||
Connection.trigger('message', msg);
|
||||
}
|
||||
Connection.socket.onclose = function() {
|
||||
Connection.update_indicator('offline');
|
||||
if(Connection.debug) console.log('CONNECTION CLOSED');
|
||||
Connection.established = false;
|
||||
Connection.trigger('close', {});
|
||||
}
|
||||
Connection.socket.onerror = function(error) {
|
||||
Connection.update_indicator('error');
|
||||
console.error('CONNECTION', error);
|
||||
Connection.established = false;
|
||||
}
|
||||
Connection.socket.onopen = function() {
|
||||
Connection.update_indicator('online');
|
||||
if(Connection.debug) console.log('CONNECTION ESTABLISHED');
|
||||
Connection.established = true;
|
||||
Connection.trigger('open', {});
|
||||
}
|
||||
setTimeout(Connection.reconnect, 2000);
|
||||
|
||||
},
|
||||
|
||||
deauth : () => {
|
||||
Game.session = {};
|
||||
},
|
||||
|
||||
reconnect : () => {
|
||||
if(!Connection.established && Connection.auto_reconnect)
|
||||
Connection.start();
|
||||
else
|
||||
setTimeout(Connection.reconnect, 2000);
|
||||
},
|
||||
|
||||
queue : [],
|
||||
|
||||
dequeue : () => {
|
||||
var dq = Connection.queue;
|
||||
Connection.queue = [];
|
||||
dq.forEach(function(fm) {
|
||||
Connection.send(fm);
|
||||
});
|
||||
},
|
||||
|
||||
send : (msg) => {
|
||||
if(Connection.established) {
|
||||
if(typeof msg == 'function')
|
||||
msg();
|
||||
else
|
||||
Connection.socket.send(JSON.stringify(msg));
|
||||
} else {
|
||||
Connection.queue.push(msg);
|
||||
}
|
||||
},
|
||||
|
||||
close : () => {
|
||||
Connection.auto_reconnect = false;
|
||||
Connection.socket.close();
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
return Connection;
|
||||
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user