【问题标题】:Error `RSV2 and RSV3 must be clear` in `ws``ws`中的错误`RSV2 and RSV3 must be clear`
【发布时间】:2017-12-31 09:44:06
【问题描述】:

我的应用在 Express 服务器中使用 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

我的一些用户似乎偶尔会发生这种情况,而且我从未能够在我的本地环境中重现它。

如何进一步调查此错误的根本原因?

【问题讨论】:

    标签: node.js express websocket


    【解决方案1】:

    根据RFC6455

    RSV1、RSV2、RSV3:各 1 位

    必须为 0,除非协商了定义含义的扩展 对于非零值。如果接收到非零值并且没有 协商的扩展定义了这种非零的含义 值,接收端点必须 使 WebSocket 失败 连接

    所以听起来您的服务器正在处理一个恶意客户端,该客户端设置了 RSV2 或 RSV3(或两者)之一,而没有先与服务器协商它们的含义。

    我想您应该尝试找出他们正在使用的客户端/浏览器,并可能先发制人地阻止由它建立的连接。

    【讨论】:

      猜你喜欢
      • 2019-07-15
      • 2017-09-28
      • 2020-07-24
      • 2017-08-07
      • 1970-01-01
      • 2021-07-12
      • 2022-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多