我有一个应用程序,我希望限制连接客户端通过线路发送的消息的最大大小。从理论maximum of a message in Node.js is about 1.9 GB开始,如果某些恶意客户端试图发送超大数据包,我实际上从不希望我的应用程序分配那么大的内存。
如何限制传入邮件大小,比如1024字节?
答案 0 :(得分:1)
每个字符的长度为1到3个字节。因此,从技术上讲,您可以只对字符串进行子串,以获得所需的长度
var limited = fullString.substring(0, 1024);
或者你可以使用这样的包:utf8-binary-cutter
答案 1 :(得分:0)
对于以后寻求该问题答案的任何人,请在服务器配置中使用maxPayload
选项限制消息的大小,然后由Node读取(这几乎总是您想要的)
const wss = new WebSocket.Server({
clientTracking: true,
maxPayload: 128 * 1024, // 128 KB
path: "/learn",
//....
})