Skip to content

Instantly share code, notes, and snippets.

@cmidgley
Created May 23, 2022 15:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cmidgley/1856943f4ca0d36053b8425860095c5b to your computer and use it in GitHub Desktop.
Save cmidgley/1856943f4ca0d36053b8425860095c5b to your computer and use it in GitHub Desktop.
Simple websocket continuous send/receive test
/*
* Copyright (c) 2016-2019 Moddable Tech, Inc.
*
* This file is part of the Moddable SDK.
*
* This work is licensed under the
* Creative Commons Attribution 4.0 International License.
* To view a copy of this license, visit
* <http://creativecommons.org/licenses/by/4.0>.
* or send a letter to Creative Commons, PO Box 1866,
* Mountain View, CA 94042, USA.
*
*/
import {Client, Server} from "websocket"
let server = new Server({port:80});
server.callback = function (message, value) {
switch (message) {
case Server.connect:
trace("main.js: socket connect.\n");
break;
case Server.handshake:
trace("main.js: websocket handshake success\n");
break;
case Server.receive:
trace(`main.js: websocket message received: ${value}\n`);
this.write(value); // echo
break;
case Server.disconnect:
trace("main.js: websocket close\n");
break;
}
}
let ws = new Client({host: "localhost", port: 80 });
ws.callback = function(message, value) {
switch (message) {
case Client.connect:
trace("socket connect\n");
break;
case Client.handshake:
trace("websocket handshake success\n");
this.write(JSON.stringify({count: 1, toggle: true}));
break;
case Client.receive:
trace(`websocket message received: ${value}\n`);
value = JSON.parse(value);
value.count += 1;
value.toggle = !value.toggle;
value.random = Math.round(Math.random() * 1000);
this.write(JSON.stringify(value));
break;
case Client.disconnect:
trace("websocket close\n");
break;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment