WebSockets in Atomic Data
WebSockets are a very fast and efficient way to have a client and server communicate in an asynchronous fashion.
They are used in Atomic Data to allow real-time updates, which makes it possible to create things like collaborative applications and multiplayer games.
These have been implemented in atomic-server
and atomic-data-browser
(powered by @tomic/lib
).
Initializing a WebSocket connection
Send an HTTP GET
request to the /ws
endpoint of an atomic-server
. The Server should update that request to a secure WebSocket (wss
) connection.
Use x-atomic
authentication headers (read more here) and use ws
as a subject when signing.
Client to server messages
SUBSCRIBE ${subject}
tells the Server that you'd like to receive Commits about this Subject.UNSUBSCRIBE ${subject}
tells the Server that you'd like to stop receiving Commits about this Subject.GET ${subject}
fetch an individual resource.
Server to client messages
COMMIT ${CommitBody}
an entire Commit for a resource that you're subscribed toRESOURCE ${CommitBody}
a resource as a response to a GET request.