Ошибка типа: прослушивание не является функцией

#node.js #socket.io

#node.js #socket.io

Вопрос:

Я не уверен, что это проблема или, может быть, есть изменения между версиями 2.x и 3.x. Когда требуется сокет.пакет ввода-вывода в первой версии я могу использовать функцию прослушивания и передавать http-серверу в качестве параметра, но при использовании версии 3.x эта функция не существует и выдает эту ошибку типа.

Это проблема или что-то изменилось?

Это снипет с сокетом 2.x.версия ввода-вывода работает, но использование последней версии — нет

 const socketIO = require('socket.io')

let socket;

const connectionSocket = (server) => {
  const io = socketIO.listen(server);

  io.on('connection', (newSocket) => {
    socket = newSocket;
    console.log(newSocket.id);
  });
}

const getSocket = () => socket;

module.exports = {
  connectionSocket,
  getSocket
}
 

Ответ №1:

Вы можете написать что-то вроде этого:

 const server = http.createServer(app);

const setServer = server => {
  io = socketIo(server, { transports: ['websocket', 'polling'] });

  io.on('connection', socket => {
    socket.on('user-connection', userConnected(socket));
  });
};