Realtime
drift.Backbone.Realtime.Channel(name): in-slice pub/sub, from the server side.
Signatures
Publish(msg any) (int, error) // → recipient count · Presence() (int, error) // → connected count
Both return a count, which is the useful part: Publish tells you how many sockets actually
received the message, so a fan-out to nobody is visible rather than silent.
Browsers subscribe directly
The SDK is only the server half. A browser joins a channel over WebSocket at
/realtime/<channel>, same-origin with your Canvas site, so
there is no cross-origin handshake and no broker to run.
A channel has no authentication and no authorization.
Anyone who can reach the Canvas
listener and knows or guesses a channel name can subscribe to it and broadcast to everyone on it. Put
nothing on a channel you would not hand to an anonymous caller, and keep the privileged half behind a
function. The Backbone guide has the connection caps and what happens past
them.
To stream a response from a single function call rather than to a shared channel, add
stream=sse or stream=ws to the function; see
Writing a handler.