Hacker News new | ask | show | jobs
by daleksti 1492 days ago
So, how's the state is synchronised?

Are clients both publishing and subscribing? How do you make that work?

1 comments

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.

Got it, thanks. So clients use REST, which triggers a publish?
Yes, the Ably REST API is used within the Azure Functions to publish a message. The Ably platform then uses WebSocket connections to the connected player devices to deliver the messages.