如何限制客户端通过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选项,如果没有设置(默认不向后兼容),默认不采取任何行动,并提交一个拉取请求。
如果他们喜欢,他们会合并。 如果没有,您仍然可以将他们的未来版本合并到自己的回购中,并保持最新状态,而不必在每次提交新版本时重新开展工作。
- jwt on node – 客户端如何将令牌传递回服务器
- 如何在进行大量修改的同时运行我的MEAN堆栈代码,而无需重新启动`npm start`?
- req.isAuthenticated()在服务器启动一段时间后返回false
- 将multer文件(nodejs)上传到Mongo数据库
- 如何让快速查看所有当地人
- Nodejs +把手 – 拉当前的URLpath并传递给助手
- “肯定键入的”NodeJS + Express定义文件有错误
- Node.js:socket.ioclosures客户端连接
- 如何在express js中添加'res.addHeader(“Access-Control-Allow-Origin”,“*”)?