如何限制客户端通过websocket发送的数据量?

我正在使用ws模块,我想通过websocket将客户端发送的数据量限制为1Mb。 这将防止恶意用户发送大量数据(以GB为单位),导致服务器内存不足,这将导致每个普通用户的拒绝服务错误。
例如,Express示例允许指定发布请求主体的最大大小,如下所示:

 bodyParser.json({limit:'1Mb'}) 

我如何做与ws模块类似的东西?
我试过了

 var ws = require('ws').Server var wsserver = new ws({port:8080, limit:'1Mb'}) 

但是这当然不起作用。
我想传输的数据被中断(超过1Mb后)和websocket连接被closures。 我怎样才能做到这一点?
必须有一种方法来限制来自客户端的dataframe…

那个能力目前还没有在那个图书馆里。

在他们的源代码周围,似乎开始的地方是https://github.com/websockets/ws/blob/master/lib/Receiver.js中的 processPacket()方法。

一旦你的包头可用,你可以看到正在发送的消息的大小。 如果超过一定的阈值,应该有一种方法可以在所有的字节连接到networking之前closures连接。

当然,要做的很好的事情就是分叉他们的仓库,发布一个function请求,添加一个configuration选项,如果没有设置(默认不向后兼容),默认不采取任何行动,并提交一个拉取请求。

如果他们喜欢,他们会合并。 如果没有,您仍然可以将他们的未来版本合并到自己的回购中,并保持最新状态,而不必在每次提交新版本时重新开展工作。