Initial public release.

This commit is contained in:
2020-02-05 18:04:50 -08:00
commit de7cf70319
173 changed files with 35469 additions and 0 deletions

92
src/websocket.js Normal file
View File

@@ -0,0 +1,92 @@
// Copyright 2020 Thomas Hintz
//
// This file is part of the Alpha Centauri Farming project.
//
// The Alpha Centauri Farming project is free software: you can
// redistribute it and/or modify it under the terms of the GNU General
// Public License as published by the Free Software Foundation, either
// version 3 of the License, or (at your option) any later version.
//
// The Alpha Centauri Farming project is distributed in the hope that
// it will be useful, but WITHOUT ANY WARRANTY; without even the
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
// PURPOSE. See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with the Alpha Centauri Farming project. If not, see
// <https://www.gnu.org/licenses/>.
export { sendCommand, setMainOnMessage, setSecondaryOnMessage,
setMainOnOpen, openMain, openSecondary,
closeMain, closeSecondary }
class WebSocketConnection {
location = '';
reopen = true;
ws = null;
constructor(location) {
this.location = location;
const loc = window.location;
let uri = '';
if (loc.protocol === "https:") {
uri = "wss:";
} else {
uri = "ws:";
}
uri += "//" + loc.host;
this.ws = new WebSocket(uri + '/websocket/' + location);
}
close() {
this.reopen = false;
this.ws.close();
}
sendCommand(cmd) {
this.ws.send(JSON.stringify(cmd));
}
onmessage(proc) {
this.ws.onmessage = proc;
}
onopen(proc) {
this.ws.onopen = proc;
}
}
var ws;
var ws2;
function openMain(location) {
ws = new WebSocketConnection(location);
}
function openSecondary(location) {
ws2 = new WebSocketConnection(location);
}
function closeMain() {
ws.close();
}
function closeSecondary() {
ws2.close();
}
function sendCommand(cmd) {
ws.sendCommand(cmd);
}
function setMainOnMessage(proc) {
ws.onmessage(proc);
}
function setSecondaryOnMessage(proc) {
ws2.onmessage(proc);
}
function setMainOnOpen(proc) {
ws.onopen(proc);
}