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() {