github.com/artyom/wspush (go): 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 a WSPUSH_KEY environment variable.
Keywords: pubsub|websocket