1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- (function() {
- window.ipc = {};
- ipc.ongamestopped = null;
- ipc.ongamelist = null;
- ipc.onerror = null;
-
- var ws;
- var connected = false;
- function send(obj) {
- var msg = JSON.stringify(obj);
-
- if (!connected)
- return console.error(
- "Attempt to send message, but socket is closed.");
-
- console.log("Sending", msg);
- ws.send(msg);
- }
-
- ipc.init = (port, cb) => {
- console.log("Connecting...");
- ws = new WebSocket("ws://127.0.0.1:"+port);
-
- ws.onopen = () => {
- connected = true;
- console.log("Connected.");
- cb && cb();
- }
-
- ws.onmessage = msg => {
- console.log("Received", msg.data);
- var obj = JSON.parse(msg.data);
-
- switch (obj.cmd) {
- case "ongamestopped":
- return ipc.ongamestopped();
-
- case "ongamestart":
- return ipc.ongamestart();
-
- case "ongamelist":
- return ipc.ongamelist(obj.games);
-
- case "onerror":
- return ipc.onerror(obj.msg);
-
- default:
- console.error("Received unknown command:", obj.cmd);
- }
- }
-
- ws.onclose = () => {
- connected = false;
- console.log("Disconnected, retrying in 1 second...");
- setTimeout(ipc.init.bind(null, port, cb), 1000);
- }
- }
-
- ipc.run = name => {
- send({ cmd: "run", name: name });
- }
- })();
|