ws-radio
v0.1.1
Published
A lightweight universal WebSocket publish/subscribe wrapper: a single module for NodeJS and client JavaScript
Downloads
6
Maintainers
Readme
WebSockets Radio
Universal publish/subscribe WebSockets API for JavaScript: a single tiny module both for server (NodeJS) and client.
Radio provides a tiny wrapper around client and server WebSocket objects, which has the same API for communication with another peer.
Usage
Both on client and server you have to work with Radio
instance, using the same API.
But first, you need to initialize Radio instance and pass a WebSocket to it.
Connect client to server:
import Radio from "ws-radio";
const ws = new WebSocket(`http://localhost:12345`);
const radio = new Radio(ws);
Server usage (within ws
package):
import Radio from "ws-radio";
import WebSocket from "ws";
const wss = new WebSocket.Server({ port: 8080 });
wss.on("connection", (ws) => {
const radio = new Radio(ws);
});
Server/client API:
// Send any data to another peer
radio.tell("anyEventNameHere", {
any: "Data",
whatever: [1, 2, 3]
});
// Send and wait for response to this request
radio.tell("requestASandwich", 100500, (response) => {
console.log(`I've got my sandwich: ${ response }`);
});
// Listen for particular event data coming from another peer
radio.listen("anyEventNameHere", (data) => {
console.log(data); // logs { }
});
// Listen and reply to a particular message
radio.listen("requestASandwitch", (data, callback) => {
// pass callback as a first argument to tell
radio.tell(callback, "Here is your sandwich!");
});
// Re-initialize Radio with another WebSocket (for example, after WebSocket disconnects):
radio.renew(newWebSocket);