socket io - 每隔X秒发一个事件或者在POST事件后发出它?

时间:2018-05-31 21:32:44

标签: websocket socket.io

我使用socket io,我想知道什么更好。

每隔X秒发送一次事件,以便始终使用数据库进行更新,或者在POST事件后发出事件,这样效率会更高。

我认为更新X秒应该更容易,并且可能具有更好的可扩展性,但不知道这是否正确。

EDIT-1:提供更多背景信息。该应用程序适用于会计团队。他们基本上希望将他们的Excel工作表转换为应用程序。他们有很多数据,所以我不知道每隔X秒发一次事件是个好主意。

感谢。

1 个答案:

答案 0 :(得分:0)

没有"正确"办法。它完全取决于客户的需求和服务器的功能。如果客户端需要立即保持最新状态,则只要服务器有新数据,就可以将数据从服务器发送到客户端。如果客户端只需要每隔一段时间更新一次,那么每隔一段时间就只发送一次数据。没有"正确"办法。这取决于你的申请。

当数据实际发生变化以及客户实际关心某些事情发生变化时,仅向客户端发送数据总是更有效率。因此,如果数据实际上没有经常更改,那么每隔几秒就发送一次客户端更新是愚蠢的。如果您有办法知道服务器上的数据何时发生变化,那么使用该事件可以知道何时向客户端发送数据,即使这样,也不会比客户实际关心的更频繁地发送数据。< / p>

让服务器不再执行客户端实际需要的工作总是更有效率。像缓存和跟踪上次发送每个客户端的内容有时可以为服务器节省大量工作。

关于此问题的任何进一步建议都需要更多地了解您的应用程序的需求以及这些特定数据如何适应这些以及相关数据实际发生变化的频率。

关于此主题的摘要:

  • 不会经常向客户发送数据
  • 将数据发送到自上次更改后未更改的客户端对服务器来说效率低下并消耗带宽。
  • 只有您可以决定客户需要更新的频率(取决于您的申请)
  • 每次数据更改时,只有您可以测试对每个客户端发送数据的可扩展性的影响。
  • 服务器端缓存并跟踪客户端已有哪些数据可以帮助您避免将数据发送到已有的客户端。
  • 服务器端可扩展性可能与连接多少个并发客户端以及发送更改数据的频率有很大关系。
相关问题