Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"TypeError: this is not a typed array.with" WS.js in Node.js

I have only this in my server file and the error appear:

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);
    });
});

The Terminal shows this error:

/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)

I have the last version of node, someone knows what happens? Thanks!

like image 208
mgm793 Avatar asked Feb 19 '17 19:02

mgm793


Video Answer


1 Answers

From this issue, ws v2 doesn't work with node < 4.5.0 (see compatibility below). You can either upgrade to a newer version of node or use previous version of ws ws@1 :

npm install ws@1

After conducting some test, here is a list of compatibility, ws@2 works between node v4.5.0 & v4.7.3 and from 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       |
like image 176
Bertrand Martel Avatar answered Sep 23 '22 20:09

Bertrand Martel