我的服务器文件中只有以下内容,并且出现以下错误:
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)我有最新版本的node,有人知道会发生什么吗?谢谢!
发布于 2017-02-20 03:40:38
在this issue中,ws v2不能与低于4.5.0的节点一起工作(参见下面的兼容性)。您可以升级到较新版本的node,也可以使用以前版本的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 |https://stackoverflow.com/questions/42331751
复制相似问题