diff --git a/public_html/index.html b/public_html/index.html index 0c9aec9..c4cf468 100644 --- a/public_html/index.html +++ b/public_html/index.html @@ -5,7 +5,7 @@ InstantChat - + @@ -13,7 +13,6 @@ - diff --git a/public_html/js/client.js b/public_html/js/client.js index 5b90372..974a5bd 100644 --- a/public_html/js/client.js +++ b/public_html/js/client.js @@ -4,76 +4,55 @@ class Client { constructor(wsUri) { this.wsUri = wsUri; - // Create WebSocket and set internal callbacks + // Create WebSocket and set callbacks console.log("Initialize Client...") this.webSocket = new WebSocket(wsUri); - this.webSocket.onopen = this._onSocketOpen.bind(this); - this.webSocket.onclose = this._onSocketClose.bind(this); - this.webSocket.onerror = this._onSocketError.bind(this); - this.webSocket.onmessage = this._onSocketMessage.bind(this); + this.webSocket.onopen = this.onOpen.bind(this); + this.webSocket.onclose = this.onClose.bind(this); + this.webSocket.onmessage = this.onMessage.bind(this); + this.webSocket.onerror = this.onError.bind(this); } - // Internal WebSocket event handlers - _onSocketOpen(evt) { + // WebSocket event handlers + onOpen(evt) { console.log("Connected to " + this.wsUri); // Send init command containing chat ID and nickname this.sendInit(); } - _onSocketClose(evt) { + onClose(evt) { console.log("Connection closed (code " + evt.code + ")."); } - _onSocketError(evt) { + onMessage(evt) { + console.log("Received: " + evt.data); + this.parseMessage(evt.data); + } + + onError(evt) { console.error("Connection error: ", evt); } - _onSocketMessage(evt) { - console.log("Received: " + evt.data); - this._parseMessage(evt.data); - } - - /** - * Sends an arbitrary command as JSON. - * - * commandObj: The command as an object ('action' specifies type of command). - */ - sendCommand(commandObj) { - const commandJson = JSON.stringify(commandObj); - console.log("Sending command: " + commandJson); - this.webSocket.send(commandJson); - } - - /** - * Sends the 'init' command which sets up the session. Also sets the chat ID and nickname. - */ + // Command senders sendInit() { - this.sendCommand({ + // Define command as JSON object + let initObj = { action: "init", chat_id: "42", - nickname: "binaryDiv", - }); + nickname: "binaryDiv" + }; + + // Send command as JSON string + let initJson = JSON.stringify(initObj); + console.log("Sending init: " + initJson); + this.webSocket.send(initJson); } - /** - * Sends the 'message' command which sends a chat message to the chat. - * - * msgText: The text of the chat message. - */ - sendChatMessage(msgText) { - this.sendCommand({ - action: "message", - text: msgText, - }); - } - - /** - * Parses an incoming JSON message and dispatches specific events. - */ - _parseMessage(msgString) { + // Message parsing + parseMessage(msgString) { try { - const msg = JSON.parse(msgString); + let msg = JSON.parse(msgString); switch (msg.type) { // Response to "init" command @@ -99,3 +78,9 @@ class Client { } } } + +// Run script after page is loaded +$(function() { + const wsUri = AppSettings.serverWsUri; + let client = new Client(wsUri); +}); diff --git a/public_html/js/settings.js b/public_html/js/settings.js index 1d61ebc..eec7552 100644 --- a/public_html/js/settings.js +++ b/public_html/js/settings.js @@ -1,10 +1,7 @@ "use strict"; -/** - * Global settings object. - */ +// Global settings object const AppSettings = { - // Alternative WebSocket URI for local testing: // serverWsUri: "ws://localhost:32715", serverWsUri: "wss://chat.glitch-in.space:443/ws/", }; diff --git a/public_html/js/ui.js b/public_html/js/ui.js deleted file mode 100644 index 1afd0d0..0000000 --- a/public_html/js/ui.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; - -// Global object for debugging purposes -let client; - -// Execute this on start (wrapped in an anonymous function) -(function() { - const wsUri = AppSettings.serverWsUri; - client = new Client(wsUri); -})();