diff --git a/public_html/js/client.js b/public_html/js/client.js index 05f0757..e569b7e 100644 --- a/public_html/js/client.js +++ b/public_html/js/client.js @@ -23,23 +23,66 @@ function openWebSocket() { function onOpen(evt) { console.log('Connected to ' + wsUri + '.'); - let text = "Meow"; - console.log('Sending "' + text + '".'); - websocket.send(text); + // Send init command containing chat ID and nickname + sendInit(); } function onClose(evt) { - console.log("Connection closed (code " + evt.code + "): ", evt); + console.log("Connection closed (code " + evt.code + ")."); } function onMessage(evt) { console.log('Received: "' + evt.data + '".'); + parseMessage(evt.data); } function onError(evt) { console.error('Connection error: ', evt); } +// Command senders +function sendInit() { + // Define command as JSON object + let initObj = { + action: "init", + chat_id: "42", + nickname: "binaryDiv" + }; + + // Send command as JSON string + let initJson = JSON.stringify(initObj); + console.log('Sending init: ' + initJson); + websocket.send(initJson); +} + +// Message parsing +function parseMessage(msgString) { + try { + let msg = JSON.parse(msgString); + + switch (msg.type) { + // Response to 'init' command + case 'init': + // TODO + console.log('Got init response: ', msg); + break; + + // Incoming chat message + case 'message': + // TODO + console.log('Got message event: from "' + msg.from + '", text "' + msg.text + '"'); + break; + + // TODO Topic change, user join/leave, error, ... + + default: + console.error('Unknown message type: "' + msg.type + '"'); + } + } + catch (e) { + console.error('Error parsing message JSON: ' + e.message); + } +} // Run script after page is loaded $(function() {