What is simple-websocket?
The simple-websocket npm package provides a straightforward API for creating WebSocket clients and servers. It is designed to be easy to use and lightweight, making it suitable for simple WebSocket communication tasks.
What are simple-websocket's main functionalities?
Creating a WebSocket Client
This code demonstrates how to create a WebSocket client using the simple-websocket package. It connects to a WebSocket server, sends a message upon connection, and listens for incoming messages and connection closure.
const SimpleWebSocket = require('simple-websocket');
const ws = new SimpleWebSocket('ws://example.com');
ws.on('connect', () => {
console.log('Connected to server');
ws.send('Hello, server!');
});
ws.on('data', (data) => {
console.log('Received message:', data);
});
ws.on('close', () => {
console.log('Connection closed');
});
Creating a WebSocket Server
This code demonstrates how to create a WebSocket server using the simple-websocket package. The server listens for new client connections, sends a welcome message to each client, and handles incoming messages and disconnections.
const SimpleWebSocketServer = require('simple-websocket/server');
const server = new SimpleWebSocketServer({ port: 3000 });
server.on('connection', (socket) => {
console.log('New client connected');
socket.send('Welcome, client!');
socket.on('data', (data) => {
console.log('Received message from client:', data);
});
socket.on('close', () => {
console.log('Client disconnected');
});
});
Other packages similar to simple-websocket
ws
The ws package is a popular WebSocket implementation for Node.js. It provides a comprehensive set of features for both WebSocket clients and servers, including support for extensions and subprotocols. Compared to simple-websocket, ws offers more advanced features and greater flexibility, but it may be more complex to use for simple tasks.
socket.io
Socket.io is a library that enables real-time, bidirectional, and event-based communication between web clients and servers. It abstracts WebSocket communication and provides fallbacks for older browsers. While it offers more features and robustness compared to simple-websocket, it is also heavier and more complex.
simple-websocket
Simple, EventEmitter API for WebSockets
features
- super simple API for working with WebSockets in the browser
- supports text and binary data
- node.js duplex stream interface
This module works in the browser with browserify, and it's used by WebTorrent!
install
npm install simple-websocket
usage
var SimpleWebsocket = require('simple-websocket')
var socket = new SimpleWebsocket('ws://echo.websocket.org')
socket.on('connect', function () {
socket.send('sup!')
})
socket.on('data', function (data) {
console.log('got message: ' + data)
})
Note: If you're NOT using browserify, then use the standalone simplewebsocket.bundle.js
file included in this repo. This exports a SimpleWebsocket
function on the window
.
api
socket = new SimpleWebsocket([opts])
Create a new WebSocket connection.
If opts
is specified, then it will be passed through to the underlying superclass, stream.Duplex
.
socket.send(data)
Send text/binary data to the WebSocket server. data
can be any of several types:
String
, Buffer
(see buffer), TypedArrayView
(Uint8Array
, etc.), ArrayBuffer
, or Blob
(in browsers that support it).
Other data types will be transformed with JSON.stringify
before sending. This is handy
for sending object literals across like this: socket.send({ type: 'data', data: 'hi' })
.
Note: If this method is called before the socket.on('connect')
event has fired, then
data will be buffered.
socket.destroy([onclose])
Destroy and cleanup this websocket connection.
If the optional onclose
paramter is passed, then it will be registered as a listener on the 'close' event.
Socket.WEBSOCKET_SUPPORT
Detect WebSocket support in the javascript environment.
var Socket = require('simple-websocket')
if (Socket.WEBSOCKET_SUPPORT) {
} else {
}
events
socket.on('connect', function () {})
Fired when the websocket connection is ready to use.
socket.on('data', function (data) {})
Received a message from the websocket server.
data
will be either a String
or a Buffer/Uint8Array
(see buffer).
socket.on('close', function () {})
Called when the websocket connection has closed.
socket.on('error', function (err) {})
err
is an Error
object.
Fired when a fatal error occurs.
real-world applications that use simple-websocket
- StudyNotes - Helping students learn faster and better
- instant.io - Secure, anonymous, streaming file transfer
- lxjs-chat - Omegle chat clone
- [ your application here - send a PR ]
license
MIT. Copyright (c) Feross Aboukhadijeh.