下图是我正在创建的Web应用程序的基本表示。
该应用程序的基本操作如下:
一切正常。我遇到的问题最好用以下情况表示。
所以我的问题是如何将我的所有4个(或更多)客户端上的JSON数据与我的Node.js服务器上的数据库实时同步?
答案 0 :(得分:2)
简而言之,您需要的是在发生变化时通知客户。尝试寻找websockets,网上有很多很好的教程。基本上,websocket是服务器和客户端之间的通信通道。您应该做的是向客户端发送有关已更改内容的通知,然后每个客户端应确定是否必须更新某些内容(并请求信息)
看看这个lib:https://www.npmjs.com/package/websocket
我认为它是最好的之一(如果它不是最好的),你甚至可以找到示例和演示。
答案 1 :(得分:1)
如果您愿意接受全栈框架,Meteor会尽一切努力使您的所有客户端视图与更改保持同步。
Meteor是一个巨大的依赖 - 它在你的堆栈的每一层都有你的技术选择的意见 - 所以它不适合所有人,但如果你想要快速的结果,它很难被击败。
答案 2 :(得分:0)
我认为在 2021 年做到这一点的最佳方式是使用服务器发送的事件。您的后端每次接收数据时都可以向所有其他客户端发出服务器发送的事件。 SSE 基本上是下游单向事件,浏览器可以像监听 websocket 一样监听它们。
客户端只会在网络延迟方面不同步,这是不可避免的。
我认为 SSE 的唯一问题是它们的浏览器兼容性较低,因此会破坏 IE 11 支持。