我有一个带有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");
});
我相信您错过了客户端
socket.io-client
,因为服务器端socket.io
无法在客户端工作。在建立与服务器端的连接之前,您需要先安装它。
$ npm install socket.io-client
安装完上述内容后,您必须在
Client
的第一行之前插入以下行。
const io = require('socket.io-client');