Сокет Nodejs.клиент ввода-вывода не может подключиться к сокету Nodejs.сервер ввода-вывода

#node.js #socket.io

#node.js #socket.io

Вопрос:

Я использую NodeJS как сервер, так и клиент. (Без веб-браузеров) Сервер, похоже, работает, но клиент не подключается. Я попытался установить порт в настройках, но это не сработало. Я пытаюсь подключиться к порту 3000 через telnet, и он подключается к чему-то, поэтому сервер прослушивает. Чего мне здесь не хватает?

Сервер:

 var express = require('express');
var app = express();
var path = require('path');
var server = require('http').createServer(app);
var io = require('socket.io')();
var port = 3000;

server.listen(port,"127.0.0.1", () => {
    console.log('Server listening at port %d', port);
});
  

Клиент:

 const io = require('socket.io-client');

const socket = io("http://127.0.0.1:3000",{reconnect:false});

socket.on('connect', function () {
    console.log('connected to the server');
});
  

Ответ №1:

Как упоминалось на официальной странице github socket-io, вам необходимо передать экземпляр http-сервера на сервер socket-io:

 ...
var server = require('http').createServer(app);
var io = require('socket.io')(server);
...