NODEJS + WS LIBRARY = ОШИБКА БУФЕРНОГО АЛЛОКА - PullRequest
0 голосов
/ 23 мая 2018

Мы создаем простую библиотеку express + websocket (ws).Когда мы запускаем простой пример, подобный этому:

var express = require('express');
var http = require('http');
var WebSocket = require('ws');

const app = express();

//initialize a simple http server
const server = http.createServer(app);

//initialize the WebSocket server instance
const wss = new WebSocket.Server( server );

wss.on('connection', function connection(ws) {

    //connection is up, let's add a simple simple event
    ws.on('message', function incoming(message) {

        //log the received message and send it back to the client
        console.log('received: %s', message);
        ws.send('Hello, you sent -> '+ message);
    });

    //send immediatly a feedback to the incoming connection    
    ws.send('Hi there, I am a WebSocket server');
});

//start our server
server.listen(process.env.PORT || 8999, () => {
    console.log('Server started on port'+ server.address().port + ' 
:)');
});

Но когда мы запускаем приложение, мы получаем эту ошибку:

ws constants.js:8 EMPTY_BUFFER: Buffer.alloc(0), ^ TypeError: 
Buffer.alloc is not a function

Знаете ли вы, о чем это?Google указывает в нескольких случаях из-за конфликтов версий.Если я наберу: nodejs -v, это вызовет у меня: v 4.2.6

Спасибо за помощь.

1 Ответ

0 голосов
/ 05 июня 2018

Я уже нахожу проблему ... Это была проблема версии пакетов.

Я удаляю все и переустанавливаю все, что касается nodejs, с помощью этой строки:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Я преобразован в nodejs8.x.После этого перезапустил мой сеанс, все заработало.Позже я нашел несколько комментариев о правильной версии для использования библиотеки WS.

С уважением!

...