【发布时间】:2015-08-29 07:53:36
【问题描述】:
我有一个应用程序,我希望限制连接的客户端通过网络发送的消息的最大大小。从理论上的maximum of a message in Node.js is about 1.9 GB 开始,如果某些恶意客户端尝试发送过大的数据包,我实际上绝不希望我的应用程序分配那么大的内存。
如何限制传入消息的大小,例如 1024 字节?
【问题讨论】:
-
@jfriend00 我的问题与内存分配有关,而不是带宽问题。如果我们在字符串上使用
.length,如果该字符串是2gb ...这就是我们遇到问题的地方,当内存开始分配以检查长度时.. :(那家伙的答案是100%错误,你应该首先检查长度并在超过时关闭客户端连接..不仅仅是依赖带宽。如果你这样做,该数据将发送给连接的每个人(因为那是他正在谈论的聊天室)。跨度> -
这个问题来自github.com/websockets/ws/issues/513。现在带有复制/问题说明。这是相当大的 TBH。
-
您可以将传入的数据通过管道传输到文件中。然后以一定的间隔/频率检查文件的大小。