【问题标题】:Efficient way in sending data from nodejs server to client using socketio [closed]使用socketio将数据从nodejs服务器发送到客户端的有效方法[关闭]
【发布时间】:2017-12-15 21:53:49
【问题描述】:

我正在尝试使用 nodejs、express、socketio 和 mysql 创建一个简单的聊天应用程序。我的问题是,将我从 nodejs 服务器中的 mysql 数据库查询的聊天历史数据发送到新连接的客户端应用程序的最有效方法是什么?我应该一次发送所有查询结果并在客户端执行循环还是在nodejs服务器中执行循环并将查询结果一一发送给客户端?

【问题讨论】:

  • 当您遇到真正的代码问题时,请尝试并提出问题。一般而言,“最佳” 可能是主观的并且取决于应用程序

标签: javascript mysql node.js socket.io


【解决方案1】:

如果“高效”是指发送数据的带宽最少,那么发送一个较大的数据块几乎总是比发送许多较小的数据块更有效(因为每个数据块都涉及开销)传播)。您可以只发送一个 JSON 编码的数组,其中数组中的每个项目都是历史记录中的一个步骤。当然,您可能希望将非常大的数据分解成更易于管理的部分是有限制的,因此如果您的总数据是数百 MB,您可能不想一次发送所有这些数据。但是,如果总聊天记录小于几十 MB,最好一次性发送(如果您的目标是全部发送)。

根据您发送的内容,具有大量重复属性名称的纯 JSON 对象数组并不总是最有效的发送格式,尽管在打开压缩的情况下总是值得一两次实验,看看它是否会产生任何效果区别与否。如果不确切了解您发送的数据,我们无法对此发表进一步评论。

将来,如果您针对特定代码提出特定问题并同时显示代码和您发送的数据,您将获得更有意义的答案。然后,我们可以针对您的具体情况进行回答,而不必猜测您的情况。理论问题在这里几乎永远不会像关于您的实际代码/数据的具体问题那样有效。出于某种原因,似乎有一种本能,在没有您的实际代码/数据的情况下提出通用形式的问题,但这通常是完全错误的方式,而且要提供有意义和具体的答案要困难得多。

【讨论】:

  • @ezekiel - 这回答了你的问题吗?
猜你喜欢
  • 2020-08-17
  • 1970-01-01
  • 2022-01-12
  • 2015-03-05
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多