Compare commits

...

2 Commits

Author SHA1 Message Date
Lexi / Zoe e99406ea63 Client: parse JSON server messages 2018-11-23 21:54:56 +01:00
Lexi / Zoe c3c41a346c Client: add sendInit() 2018-11-23 21:54:48 +01:00
1 changed files with 47 additions and 4 deletions

View File

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