@mikosoft/ws-server

1.1.5 • Public • Published

@mikosoft/ws-server

Ultra fast Websocket Server with builtin JS framework for creating real-time, complex apps.

The library is made for NodeJS platform according to RFC6455 Standard and websocket version 13.

Very clean code with straightforward logic and no dependencies.

Websocket Server Features

  • RFC6455, websocket v.13
  • NodeJS v10+
  • no dependencies
  • internal HTTP server
  • socket (client) authentication
  • limit total number of the connected clients
  • limit the number of connected clients per IP
  • rooms (grouped websocket clients)
  • built-in router
  • possible RxJS integration

Installation

npm install --save @mikosoft/ws-server

Example

const { WsServer, WsHttpServer, lib } = require('@mikosoft/ws-server);

// start internal HTTP server
const httpOpts = {
  port: 3211,
  timeout: 0 // if 0 the socket connection will never timeout
};
const wsHttpServer = new WsHttpServer(httpOpts);
const httpServer = wsHttpServer.start(); // nodeJS HTTP server instance
setTimeout(() => {
  // wsHttpServer.restart();
  // wsHttpServer.stop();
}, 3400);

// websocket server
const wsOpts = {
  timeout: 5 * 60 * 1000, // close socket after ms inactivity. If 0 never close. Default: 5min.
  allowHalfOpen: false, // if false close socket if it's readyState is writeOnly or readOnly. When NginX timeout socket on the client side [Client -X- NginX --- WSServer(NodeJS)]
  maxConns: 10000, // limit connections to the server
  maxIPConns: 3, // limit connections from the same IP address. If 0 infinite
  storage: 'memory', // socket storage type
  subprotocol: 'jsonRWS', // protocol used in the server
  tightening: 400, // delays in the code execution
  autodelayFactor: 500, // factor for preventing DDoS, it can lead to slower message sending when set to higher values
  version: 13, // websocket version
  debug: false // debug incoming and outgoing messages
};
const wsServer = new WsServer(wsOpts);
wsServer.socketStorage.init(null);
wsServer.bootup(httpServer);

Website

http://libs.mikosoft.info/websocket/ws-server

Server Development

## start the test server
$ node examples/001internal.js

TCPDUMP

Use tcpdump command to debug the messages sent from the server to the client. For example sudo tcpdump -i any port 8000 -X -s0 where 8000 is the server port.

Licence

Copyright (c) 2021- Mikosoft licensed under MIT .

Package Sidebar

Install

npm i @mikosoft/ws-server

Weekly Downloads

7

Version

1.1.5

License

MIT

Unpacked Size

47.8 kB

Total Files

13

Last publish

Collaborators

  • smikodanic