"TypeError:这不是一个类型化的数组."Node.js中的WS.js

Fr3*_*d0m 5 javascript websocket 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);
    });
});
Run Code Online (Sandbox Code Playgroud)

终端显示此错误:

/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)
Run Code Online (Sandbox Code Playgroud)

我有节点的最后一个版本,有人知道会发生什么?谢谢!

Ber*_*tel 11

这个问题来看,wsv2不适用于节点<4.5.0(请参阅下面的兼容性).您可以升级到较新版本的节点或使用以前版本的ws ws@1:

npm install ws@1
Run Code Online (Sandbox Code Playgroud)

进行一些测试后,这里是兼容性列表,ws@2节点之间的工作v4.5.0v4.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       |
Run Code Online (Sandbox Code Playgroud)