-
Notifications
You must be signed in to change notification settings - Fork 1
Service to deliver redis PUBSUB messages over websocket
License
artyom/wspush
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Command wspush implements http service relaying redis pubsub messages to websocket connections or as server-sent events. wspush subscribes to redis channel(s) using "PSUBSCRIBE prefix*" command where prefix can be set with -prefix flag. When it receives a message published to "prefixFoo" channel, it looks up any connected client(s) with query string parameter "token=Foo" and sends message to each client as a single websocket binary frame. If client connects to path ending with /sse, or having "Accept: text/event-stream" header, messages are delivered as server-sent events (https://www.w3.org/TR/eventsource/), with default "message" event type. It is expected that message published to redis is valid utf8 string. If program started with -hmac flag set to base64 encoded (url-compatible, padless) secret key, this key is used to verify tokens, which then must be base64 encoded (url-compatible, padless) values of payload concatenated with its md5 HMAC signature. Alternatively, key value can also be passed with WSPUSH_KEY environment variable. If wspush is started with -ping set to some arbitrary payload, that payload will be sent as a heartbeat every 45 seconds. Otherwise, an empty ping will be sent instead ("ping" message for server-sent events, or unsollicited "pong" frame for websocket connections).
About
Service to deliver redis PUBSUB messages over websocket