【问题标题】:node.js / socket.io is there a maximum message/event sizenode.js / socket.io 是否有最大消息/事件大小
【发布时间】:2011-07-25 14:25:37
【问题描述】:

标题说明了一切 - 我想从服务器发送到客户端的事件(或消息)是否有最大大小?

我想向客户端发送一个 json 字符串,它看起来像这样:

[{"id":"4e25434f0f110ec101000005","media":"4fb135d508e972664c5adf3.jpg"},
 {"id":"4e2545f30f110ec101000021","media":"d09b745414e251695aa33e04.jpg"},
 {"id":"4e2554ce7bcfb24702000012","media":"076eea872411e433b9.png"},
 {"id":"4e255bc4f34a41cb02000010","media":"c2af3db4707db3ece.png"}]

如果数组包含例如200 件,这会崩溃吗?!

【问题讨论】:

    标签: sockets node.js websocket socket.io


    【解决方案1】:

    它不会崩溃,我不小心通过 Socket.IO 发送了一个包含 250 个超大对象的数组,它处理它没有任何问题。

    您可以将其视为通过 http 请求发送一个包含 250 个项目的 JSON 对象,用户可能需要一段时间才能将其全部下载。这基本上是您将遇到的唯一限制。

    【讨论】:

    • 问题:在大对象之后发出的消息会发生什么?他们会只是很晚才到达(在传输完成后)还是消息会开始以错误的顺序到达?我想这两种情况都是不需要的。
    【解决方案2】:

    我认为这不会崩溃,因为 node.js 有一个内置的 nagle 算法(如果你没有禁用它),它会在发送数据之前缓冲数据。

    http://www.nodejs.org/docs/v0.5.1/api/net.html#socket.setNoDelay

    Node.js 可以很容易地处理它,用于基准测试我已经发送了 800kb 的数据块(随机刷新)。对方花了很长时间才收到但发送成功。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-07
      • 2015-08-09
      • 2010-09-27
      • 2016-01-23
      • 2012-04-01
      • 2014-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多