Good question, the flow is like this:
1. Clients trigger HTTP function endpoints (add a player, do an attack).
2. Centralized state is being updated (based on Durable Entities).
3. The Azure Functions publish messages to the realtime channel (via a REST based client).
4. Clients are subscribed to the realtime channel (using a WebSocket based connection) and respond to the messages (update player health etc).
So clients are only subscribing to messages that the Azure Functions are publishing.