Lightweight WebSocket library for Bun
- 🐰 Works with Bun
- ⚡ Zero dependencies
- ⚙️ Assigns an ID to each client connection
- 🟦 Written in TypeScript
bun a @jgtools/bunnyws
import { BunnyWS } from "@jgtools/bunnyws";
// ...
import { BunnyMsg, BunnyWS, BunnyWSEvents, BunnyWSClient } from "@jgtools/bunnyws";
const events: BunnyWSEvents = {
open: (ws: BunnyWSClient) => {
console.log("Client has connected", ws.data.id);
},
message: (ws: BunnyWSClient, msg: BunnyMsg) => {
console.log("Received:", msg);
ws.send(msg); // send to client
ws.publish("global", msg); // send to all connected clients (excluding itself)
},
close: (ws: BunnyWSClient) => {
console.log("Client has disconnected:", ws.data.id);
}
}
const bws = new BunnyWS(8080, events);
setInterval(() => bws.publish("Published to all"), 3000);
BunnyWS
is a WebSocket server.
Constructor parameters:
Parameter | Type |
---|---|
port |
number |
events |
BunnyWSEvents |
Methods:
Method | Type |
---|---|
publish |
(msg: string | ArrayBufferView | ArrayBuffer, compress?: boolean) => number |
BunnyWSEvents
is an interface that defines the event handlers for a BunnyWS
server.
Property | Type |
---|---|
open |
(ws: BunnyWSClient) => void |
message |
(ws: BunnyWSClient, msg: BunnyMsg) => void |
close |
(ws: BunnyWSClient) => void |
MIT