如何在Node.js服务器上的多个客户端之间同步数据

下图是我正在创build的Web应用程序的基本表示。

Node.js Web应用程序原理图

该应用程序的基本操作如下:

  1. 客户端发送来自node.js服务器的数据请求
  2. 服务器收到请求。
  3. 服务器从数据库中提取数据。
  4. 服务器将数据作为JSONstring发送回客户端。
  5. 客户端接收数据将其存储为JSON对象并将其绑定到一个表。

这一切工作正常。 我遇到的问题最好用下面的情况来表示。

  1. 客户端1到4全部完成上述步骤(即,所有的都有绑定到JSON对象的数据表)。
  2. 客户端1现在向服务器发送更新请求。
  3. 服务器收到请求。
  4. 服务器更新数据库
  5. 服务器向客户端1发送响应,指示成功操作并更新绑定到表的JSON对象。
  6. 问题显示在客户机2到4上的JSON数据现在不再与数据库同步。

所以我的问题是如何保持我的客户端上的所有4(或更多)的JSON数据实时与我的Node.js服务器上的数据库同步?

简而言之,您需要的是当事情发生变化时通知客户。 尝试寻找websockets,网上有很多很好的教程。 基本上,websocket是服务器和客户端之间的通信通道,你应该做的是向客户端发送一个通知,告知客户端发生了什么变化,然后每个客户端应该确定是否需要更新(并请求信息) 。

看看这个lib: https : //www.npmjs.com/package/websocket

我认为这是最好的(如果它不是最好的),你甚至可以find例子和演示。

如果您愿意采用全栈框架, Meteor会尽其所能保持您的所有客户端视图与更改同步。

meteor是一个巨大的依赖性 – 它有你的技术select在你的堆栈中的每一层的意见 – 所以它不会为每个人,但如果你想要快速的结果是很难打败。

Interesting Posts