Javascript Node.js和Socket.io UTF8验证类型来自ws的错误

Javascript Node.js和Socket.io UTF8验证类型来自ws的错误,javascript,node.js,sockets,socket.io,Javascript,Node.js,Sockets,Socket.io,验证通过socket.io从客户端接收的数据时出现此错误 C:\Users\Rayce\Documents\SENG513\node-js-getting-started\node_modules\socket.io\node_modules\ws\lib\Receiver.js:532 6:23:55 PM web.1 | if (!Validation.isValidUTF8(messageBuffer)) { 6:23:55 PM web.1 |

验证通过socket.io从客户端接收的数据时出现此错误

C:\Users\Rayce\Documents\SENG513\node-js-getting-started\node_modules\socket.io\node_modules\ws\lib\Receiver.js:532
6:23:55 PM web.1 |              if (!Validation.isValidUTF8(messageBuffer)) {
6:23:55 PM web.1 |                             ^
6:23:55 PM web.1 |  TypeError: Cannot read property 'isValidUTF8' of undefined
6:23:55 PM web.1 |      at C:\Users\Rayce\Documents\SENG513\node-js-getting-started\node_modules\socket.io\node_modules\ws\lib\Receiver.js:532:28
6:23:55 PM web.1 |      at C:\Users\Rayce\Documents\SENG513\node-js-getting-started\node_modules\socket.io\node_modules\ws\lib\Receiver.js:368:7
6:23:55 PM web.1 |      at C:\Users\Rayce\Documents\SENG513\node-js-getting-started\node_modules\socket.io\node_modules\ws\lib\PerMessageDeflate.js:249:5
6:23:55 PM web.1 |      at afterWrite (_stream_writable.js:355:3)
6:23:55 PM web.1 |      at onwrite (_stream_writable.js:346:7)
6:23:55 PM web.1 |      at WritableState.onwrite (_stream_writable.js:89:5)
6:23:55 PM web.1 |      at afterTransform (_stream_transform.js:79:3)
6:23:55 PM web.1 |      at TransformState.afterTransform (_stream_transform.js:54:12)
6:23:55 PM web.1 |      at Zlib.callback (zlib.js:613:5)
[DONE] Killing all processes with signal  null
6:23:55 PM web.1 Exited with exit code 1
在Receiver.js中编辑掉这段代码

if (!Validation.isValidUTF8(messageBuffer)) {
  self.error('invalid utf8 sequence', 1007);
  return;
}
阻止错误的发生,但我更喜欢一个更好的解决方案,因为我想使用NPM,并且不想在每次更新时都重做


我还尝试将utf-8-validate安装到socket.io的node_modules文件夹中,但没有成功

更新:升级
ws
v2.x可以解决这个问题

ws
模块中更改Receiver.js,如下所示:

var isValidUTF8 = require('./Validation')
...
if (!isValidUTF8(messageBuffer)) {
  ...
}

你可以这样做只是让它工作,但这不是一个好的解决方案,似乎有一个错误的导出验证模块,你可以发送一个PR到
ws
来解决这个问题。

你能解决吗?我也有同样的问题我也有同样的问题,而且这对任何人都有帮助^-^