前端JS WebSocket API与后端node ws库:消息大小是否有限制?
WebSocket API(前端)+ ws库(Node.js后端)消息大小限制说明
前端WebSocket API本身没有强制的内置消息大小限制,实际能传输的最大消息尺寸取决于浏览器的内存资源和运行环境。如果消息体积过大导致内存占用超出浏览器承载能力,可能会出现连接断开、页面卡顿甚至崩溃的情况,但这属于环境限制,而非API本身的限制。
Node.js的ws库默认存在消息大小限制:默认最大允许的消息载荷(payload)为100MB。当接收到的消息超过这个阈值时,服务器会自动关闭对应连接,并触发
error事件。如需调整后端的消息大小限制,可以在创建ws服务器时通过
maxPayload参数自定义阈值,示例代码如下:
const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080, maxPayload: 200 * 1024 * 1024 // 自定义为200MB });
- 注意:即使调大了限制,传输超大消息仍可能带来带宽占用过高、内存消耗过大等性能问题,建议对大文件/消息进行分片处理,拆分为小帧发送后在接收端拼接。
内容的提问来源于stack exchange,提问作者SB Praveen
相关产品推荐
相关产品推荐

