服务器和客户端之间的Socket.io通信 - 未从客户端接收消息

问题描述 投票:0回答:1

我有一个带有socket.io的应用程序服务器和客户端,我正在尝试在它们之间进行通信。不幸的是,它没有按预期工作。 大致流程是这样的。

1 - 启动服务器。 2 - 启动客户端 3 - 在服务器中连接客户端 4 - 服务器接收连接消息并向客户端发送广播。 5 - 客户端接收消息并发回“hello”消息并显示在控制台中

步骤 4 和 5 根本不起作用。有什么帮助吗?

代码:

服务器 --------------------------------------------------------------

const app = express();
const http = require('http');
const server = http.createServer(app);
const { Server } = require("socket.io");
const io = new Server(server);

app.get('/', (req, res) => {
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', (socket) => {
  console.log('a user connected')
  io.emit('broadcast msg from server')


   io.on('hello', () => {
    console.log('mensagem do client')
    io.emit('hello');
    });

});

server.listen(3000, () => {
  console.log('listening on *:3000');
 
});

//客户端 ---------------------------------------------------------- -

const ioClient = io.connect("http://localhost:3000")
const readline = require('readline')

ioClient.on("connect", () => {
    console.log('conectou')
});

const rl = readline.createInterface({
    input: process.stdin,   
    utput: process.stdout
});

ioClient.on("broadcast msg from server", () => {
    console.log("broadcast msg from server");

    ioClient.emit("hello");
    
});

ioClient.on("hello", () => {
    console.log("helloFrom server");
});
node.js sockets server client io-socket
1个回答
0
投票

我相信您错过了客户端

socket.io-client
,因为服务器端
socket.io
无法在客户端工作。在建立与服务器端的连接之前,您需要先安装它。

$ npm install socket.io-client

安装完上述内容后,您必须在

Client
的第一行之前插入以下行。

const io = require('socket.io-client');
© www.soinside.com 2019 - 2024. All rights reserved.