Skip to content

Booth provides symmetric Event API over websocket or unix domain socket

License

Notifications You must be signed in to change notification settings

StreetStrider/booth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e48a247 · Mar 26, 2025
Feb 10, 2025
Feb 10, 2025
Mar 26, 2025
Mar 26, 2025
Aug 15, 2019
Nov 24, 2024
Dec 30, 2024
Dec 15, 2024
Feb 10, 2025
Mar 26, 2025
Mar 26, 2025
Dec 16, 2024
Nov 24, 2024
Dec 30, 2024
Dec 22, 2024
Jan 26, 2025
Mar 26, 2025
Jan 26, 2025
Dec 22, 2024

Repository files navigation

booth

Booth provides symmetric Event API over websocket or unix domain socket

Alike socket.io, but less powerful. Simple Event API, simple reconnect strategy, symmetric usage via Endpoint() on both client and server sides.

api

/*
 * options: WebSocket.Server options
 */
const dispatch = Dispatch(options)

/* port */
const dispatch = Dispatch({ port: 9000 })

/*
 * httpServer instance
 * for using inside working http server
 * or with unix domain socket
 */
const dispatch = Dispatch({ server })

dispatch.on('name', handler)
dispatch.on({ name: handler })

function handler (data, endpoint) { /* … */ }

/*
 * ws_uri: string with ws or ws+unix uri
 */
Endpoint(ws_uri)

/* websocket */
Endpoint('ws://127.0.0.1:9000')
Endpoint('ws://localhost:9000')

/* unix domain socket */
Endpoint('ws+unix:///tmp/booth/unix.sock')

endpoint.on('name', handler)
endpoint.on({ name: handler })

function handler (data, endpoint) { /* … */ }

license

ISC. Copyright © 2025, Strider.