
Product
Introducing Historical Analytics – Now in Beta
We’re excited to announce a powerful new capability in Socket: historical data and enhanced analytics.
websocketserver
Advanced tools
A WebSocket server implementation for Node.js, various features to still implement such as support for wss:// and performance analytics centre.
Install using npm - https://npmjs.org/package/websocketserver
npm install websocketserver
In a project require the websocketserver module and create an instance of it:
var WebSocketServer = require("websocketserver"); var server = new WebSocketServer("all", 9000);
This will create a WebSocket server that runs on 9000 (default 8080) and uses a sendMethod that sends recieved connections to all server connections. Four sendMethods can be used:
all
- will send received messages to all users
others
- will send messages to all users apart from the sender
echo
- will echo the message back to the sender
none
- will not automatically send any messages (useful for when more control is needed over message sending, use API to send messages)
The server emits events on a new connection, message and a closed connection:
connection
event - use to built a list of connectionsvar connectionList = []; server.on("connection", function(id) { connectionList.push(id); });
message
event - get hold of the messageserver.on("message", function(data, id) { var mes = server.unmaskMessage(data); var str = server.convertToString(mes.message); console.log(str); });
connectionclosed
- log a connection has left (can also use id to remove from connectionList)server.on("closedconnection", function(id) { console.log("Connection " + id + " has left the server"); });
WebSocketServer.sendMessage(people, data, id);
- send a message to specified people
(all
, others
or one
), data
supports strings and packaged WebSocket messages (use packageMessage
function for packaging), id
is relates to the connection that you would like (or not to if others
has been selected for the people
argument, id
not required if all has been selected).This example shows how new connections to the server can be welcomed with a message:
server.on('connection', function(id) { server.sendMessage("one", "Welcome to the server!", id); });
WebSocketServer.unmaskMessage(frame);
- unmasks a WebSocket frame recieved by the server - returns a JavaScript objects with two properties: opcode
and message
(message
is an array of bytes holding character codes - use convertToString(message)
function to get the string representation)Example shows how a message could be logged to the console:
server.on('message', function(data, id) { var mesObj = server.unmaskMessage(data); console.log(server.convertToString(mesObj.message)); });
WebSocketServer.convertToString(bytes);
- converts an array of bytes containing character codes to a string.
WebSocketServer.packageMessage(opcode, message);
- packages a recieved WebSocket message into a sendable WebSocket message - this function is only really necessary after use of unmaskMessage()
as it is only really necessary for data that needs to pass through the server (primarily binary messages)
Example shows how we may filter binary data to send straight through the server as most of the time we have no reason to log it.
server.on('message', function(data, id) { var mes = server.unmaskMessage(data); if (mes.opcode == 130) { var packagedMessage = server.packageMessage(mes.opcode, mes.message); server.sendMessage('all', packagedMessage); } });
WebSocketServer.closeConnection(id);
close a specific connection
FAQs
A WebSocket Server implementation for Node.js
The npm package websocketserver receives a total of 10 weekly downloads. As such, websocketserver popularity was classified as not popular.
We found that websocketserver demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
We’re excited to announce a powerful new capability in Socket: historical data and enhanced analytics.
Product
Module Reachability filters out unreachable CVEs so you can focus on vulnerabilities that actually matter to your application.
Company News
Socket is bringing best-in-class reachability analysis into the platform — cutting false positives, accelerating triage, and cementing our place as the leader in software supply chain security.