0

I'd like to synchronise data between a browser client and server using ONLY WebSockets.

Currently most people use WebSockets only to notify the client that some data is available on the server.

After investigating the current state I found no good reasons why I wouldn't use WebSockets to synchronise the data directly.

Note: This is not a duplicate of disadvantages of websockets as I've got a specific use case in mind

Community
  • 1
  • 1
Hedge
  • 16,142
  • 42
  • 141
  • 246

2 Answers2

1

I've done that using SSE without any particular issue (just make sure you read data updates on a single channel, i.e. don't send a response payload with a REST call and the same payload over your persistent channel), and I think WebSockets should be even better. Can't imagine why it wouldn't work (as long as there's no old HTTP proxy screwing up WebSockets itself).

Touffy
  • 6,309
  • 22
  • 28
1

There is absolutely no technical problem in doing so. The problem is if you try to decouple writes and reads to move to a more scalable architecture like CQRS. Are websockets part of the reads or the writes? :)

My recomendation for regular apps is to use WebSockets to get updates, and to send queries about the read model like autocompletion inputs, searches, etc... But use a REST API to send actual data that needs to be persisted. But, if you application is highly interactive then you will never find yourself in a position of wanting to decouple reads and writes, so using WebSockets for all should be fine.

How to handle CQRS from a client-side perspective

WebSocket/REST: Client connections?

Community
  • 1
  • 1
vtortola
  • 34,709
  • 29
  • 161
  • 263