3

有没有办法控制 tcp 套接字写入的每个步骤,以了解大型图像数据传输的服务器端进度?

在最坏的情况下,如何更改主节点 bin 文件夹以添加此事件?

最后,有人可以向我解释为什么 node.js http tcp 套接字的最大长度是 1460 吗?

4

1 回答 1

1

文档中:

socket.write(数据,[编码],[回调])

在套接字上发送数据。第二个参数指定字符串情况下的编码——默认为 UTF8 编码。

如果整个数据已成功刷新到内核缓冲区,则返回 true。如果全部或部分数据在用户内存中排队,则返回 false。当缓冲区再次空闲时,将发出“drain”。

可选的回调参数将在数据最终写出时执行 - 这可能不会立即执行。

事件:“排水”

当写缓冲区变空时发出。可用于限制上传。

另见:socket.write() 的返回值

因此,您可以指定在刷新数据后要调用的回调,也可以在套接字上注册一个“drain”事件处理程序。这实际上并没有告诉您另一端的进度,但是正确实现的服务器会在其队列已满时发送适当的通知,这将触发 Node.js 端的事件。

于 2013-07-21T20:46:23.897 回答