@jgtools/bunnyws
v4.0.8
Published
Lightweight WebSocket library for Bun
Downloads
19
Maintainers
Readme
BunnyWS
Lightweight WebSocket library for Bun
Features
- :rabbit: Works with Bun
- :zap: Zero dependencies
- :gear: Assigns an ID to each client connection
- :blue_square: Written in TypeScript
Installation
Using bun
bun a @jgtools/bunnyws
import { BunnyWS } from "@jgtools/bunnyws";
// ...
Usage
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);
Docs
BunnyWS
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
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
|
License
MIT