id so the frontend can match acknowledgements and errors to a request.
Client Messages
Subscribe
Unsubscribe
Ping
Server Messages
Subscribed
Data
Error
Batched Frames
The server writer can place multiple JSON messages in a single WebSocket text frame separated by newlines. Always split incoming text frames by\n before parsing.