有没有办法限制字符串的最大大小?

NiC*_*man 9 websocket node.js

我有一个应用程序,我希望限制连接客户端通过线路发送的消息的最大大小.由于Node.js中消息的理论最大值约为1.9 GB,因此,如果某些恶意客户端尝试发送超大数据包,我实际上从不希望我的应用程序分配大量内存.

如何限制传入的邮件大小,比如1024字节?

meh*_*mpt 8

对于将来寻找此问题答案的任何人,请使用maxPayload服务器配置中的选项来限制节点读取消息之前的消息大小(这几乎总是您想要的)

const wss = new WebSocket.Server({
        clientTracking: true,
        maxPayload: 128 * 1024, // 128 KB
        path: "/learn",
        //....
})
Run Code Online (Sandbox Code Playgroud)


Kod*_*der 0

每个字符的长度为 1 到 3 个字节。因此,从技术上讲,您只需对字符串进行子串即可获得所需的长度。

var limited = fullString.substring(0, 1024);
Run Code Online (Sandbox Code Playgroud)

或者你可以使用这样的包:utf8-binary-cutter