我的应用程序在快递服务器上使用ws
来服务WebSocket。我在生产中看到了很多错误:
RSV2 and RSV3 must be clear
/app/node_modules/ws/lib/Receiver.js:184:18getInfo
/app/node_modules/ws/lib/Receiver.js:153:16startLoop
/app/node_modules/ws/lib/Receiver.js:139:10add
/app/node_modules/ws/lib/WebSocket.js:142:22_ultron.on
events.js:96:13emitOne
events.js:188:7emit
_stream_readable.js:176:18readableAddChunk
_stream_readable.js:134:10Readable.push
net.js:547:20onread
这似乎是偶尔发生在我的一些用户,我从来没有能够复制它在我的本地环境。
我能做些什么来进一步调查这个错误的根源呢?
发布于 2017-07-25 13:15:55
根据RFC6455
RSV1,RSV2,RSV3:每个1位 必须为0,除非对定义非零值含义的扩展进行协商。如果接收到非零值,并且协商后的任何扩展都没有定义这种非零值的含义,则接收端点必须使WebSocket连接失败。
因此,听起来您的服务器正在处理一个流氓客户端,该客户端正在设置RSV2或RSV3之一(或两者兼而有之),而没有首先与服务器协商它们的含义。
我想你应该试着找出他们使用的是什么客户机/浏览器,也许可以先发制人地阻止由它建立的连接。
https://stackoverflow.com/questions/45303733
复制相似问题