如何在Node.js服务器上的多个客户端之间同步数据
下图是我正在创build的Web应用程序的基本表示。
该应用程序的基本操作如下:
- 客户端发送来自node.js服务器的数据请求
- 服务器收到请求。
- 服务器从数据库中提取数据。
- 服务器将数据作为JSONstring发送回客户端。
- 客户端接收数据将其存储为JSON对象并将其绑定到一个表。
这一切工作正常。 我遇到的问题最好用下面的情况来表示。
- 客户端1到4全部完成上述步骤(即,所有的都有绑定到JSON对象的数据表)。
- 客户端1现在向服务器发送更新请求。
- 服务器收到请求。
- 服务器更新数据库
- 服务器向客户端1发送响应,指示成功操作并更新绑定到表的JSON对象。
- 问题显示在客户机2到4上的JSON数据现在不再与数据库同步。
所以我的问题是如何保持我的客户端上的所有4(或更多)的JSON数据实时与我的Node.js服务器上的数据库同步?
简而言之,您需要的是当事情发生变化时通知客户。 尝试寻找websockets,网上有很多很好的教程。 基本上,websocket是服务器和客户端之间的通信通道,你应该做的是向客户端发送一个通知,告知客户端发生了什么变化,然后每个客户端应该确定是否需要更新(并请求信息) 。
看看这个lib: https : //www.npmjs.com/package/websocket
我认为这是最好的(如果它不是最好的),你甚至可以find例子和演示。
如果您愿意采用全栈框架, Meteor会尽其所能保持您的所有客户端视图与更改同步。
meteor是一个巨大的依赖性 – 它有你的技术select在你的堆栈中的每一层的意见 – 所以它不会为每个人,但如果你想要快速的结果是很难打败。