[英]“TypeError: this is not a typed array.with” WS.js in Node.js
我在我的服务器文件中只有这个,并出现错误:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 9000 });
wss.broadcast = function broadcast(data) {
wss.clients.forEach(function each(client) {
if (client.readyState === WebSocket.OPEN) {
client.send(data);
}
});
};
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(data) {
wss.broadcast(data);
});
});
终端显示此错误:
/home/mgmaip/server/node_modules/ws/lib/PerMessageDeflate.js:8
const TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);
^
TypeError: this is not a typed array.
at Function.from (native)
at Object.<anonymous> (/home/mgmaip/server/node_modules/ws/lib/PerMessageDeflate.js:8:24)
at Module._compile (module.js:397:26)
at Object.Module._extensions..js (module.js:404:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/home/mgmaip/server/node_modules/ws/lib/WebSocket.js:16:27)
at Module._compile (module.js:397:26)
我有节点的最后一个版本,有人知道会发生什么? 谢谢!
从这个问题来看, ws
v2不适用于节点<4.5.0(参见下面的兼容性)。 您可以升级到较新版本的节点或使用以前版本的ws ws@1
:
npm install ws@1
在进行一些测试后,这里有一个兼容性列表, ws@2
在节点v4.5.0
和v4.7.3
之间以及v5.10.0
:
| node version | ws@2 working |
|--------------|--------------|
| v4.4.7 | |
| v4.5.0 | OK |
| v4.6.0 | OK |
| v4.6.1 | OK |
| v4.6.2 | OK |
| v4.7.0 | OK |
| v4.7.1 | OK |
| v4.7.2 | OK |
| v4.7.3 | OK |
| v5.0.0 | |
| v5.1.0 | |
| v5.1.1 | |
| v5.2.0 | |
| v5.3.0 | |
| v5.4.0 | |
| v5.4.1 | |
| v5.5.0 | |
| v5.6.0 | |
| v5.7.0 | |
| v5.7.1 | |
| v5.8.0 | |
| v5.9.0 | |
| v5.9.1 | |
| v5.10.0 | OK |
| v5.10.1 | OK |
| v5.11.0 | OK |
| v5.11.1 | OK |
| v5.12.0 | OK |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.