【发布时间】:2020-01-27 04:28:45
【问题描述】:
我正在使用带有 express 的 Socket.io 制作一个 Web 应用程序。
我想向所有客户端发送数据,所有客户端都可以编辑/更新该数据,并且更新后的数据将实时更新(对于所有客户端)。
这是否可能,无需删除和更新整个数据? 如果一个新用户加入房间并且我想显示与其他客户端相同的数据怎么办
【问题讨论】:
-
这是什么意思:“这可能吗,无需删除和更新整个数据?”意思是?您可以从您的服务器调用
io.emit(someMsg, someData),它会将数据发送到每个连接的客户端(在顶级命名空间上)。您发送什么数据以及客户端如何处理这些数据完全取决于您的代码。如果你想发送小的增量数据,你当然可以这样做。您必须让客户端足够聪明,知道如何处理那一小部分增量数据,以便它可以相应地更新客户端显示。 -
我的意思是,在更改时,我是否需要将整个数据发送到服务器和客户端(我需要删除旧数据并再次发布整个数据)?
-
有什么方法或东西可以处理这些变化吗?
-
node.js、socket.io 或 express 中没有内置任何内容。你必须自己做。如果您准确地向我们展示您正在尝试更新的内容、客户端中的数据是什么样的以及您将发送哪些类型的增量更新,我们可以为您提供更具体的帮助。
-
对于新用户加入,我假设您的服务器负责保留当前数据集的副本,以便任何新用户都可以收到整套当前数据(至少这是通常是如何工作的)。
标签: javascript node.js express websocket socket.io