wassocket
v0.1.3
Published
High performance WebSocket framework with rooms, middleware, redis adapter
Maintainers
Readme
WASSocket (CommonJS)
High-performance WebSocket framework with JWT authentication, auto TLS, middleware, plugins, rooms, namespaces and Redis scaling.
Installation
npm install wassocketServer Example
const { WASSocketServer } = require("wassocket"); const server = new
WASSocketServer({ port: 3000, jwtSecret: "secret" }); server.start();Client Example
const { WASSocketClient } = require("wassocket"); const client = new
WASSocketClient("ws://localhost:3000", { token: "JWT" });
client.connect();Advanced API
Namespace
const chat = server.namespace("/chat"); chat.on("connection", client =\>
{});Rooms
client.join("room1"); server.to("room1").emit("msg", "hello");Middleware
server.middleware.usePre(async (ctx, next) =\> { await next(); });Plugin
function LoggerPlugin(server) { server.on("connection", c =\>
console.log(c.id)); } server.use(LoggerPlugin);Cluster & Redis Scaling
Use RedisAdapter to synchronize packets across multiple instances.
const { RedisAdapter } = require("wassocket/adapters");
server.useAdapter(new RedisAdapter({ url: "redis://localhost:6379" }));Deploy multiple node processes behind a load balancer.
Admin Dashboard JWT
Dashboard endpoint requires JWT token. Generate token with same secret
as server. Attach Authorization header: Bearer <token>{=html}.
