Node.js 如何将数据从套接字IO客户端发送到套接字IO服务器?

Node.js 如何将数据从套接字IO客户端发送到套接字IO服务器?,node.js,socket.io,Node.js,Socket.io,所以我正在开发一个小应用程序,它需要一个双向通道来在客户端和服务器之间传输数据 我可以将sata从服务器发送到客户端。很好用。但是,另一种方法是行不通的。由于某些原因,从客户端向客户端发送数据不起作用 这是client.js let io = require('socket.io-client'); let socket = io.connect("http://localhost:5000/", { reconnection: false }); socket.on('connect

所以我正在开发一个小应用程序,它需要一个双向通道来在客户端和服务器之间传输数据

我可以将sata从服务器发送到客户端。很好用。但是,另一种方法是行不通的。由于某些原因,从客户端向客户端发送数据不起作用

这是client.js

let io = require('socket.io-client');
let socket = io.connect("http://localhost:5000/", {
    reconnection: false
});

socket.on('connect', function() {
    console.log('Connected to server');
    socket.emit('data', 'data is emitted !')
});
下面是server.js:

var io = require('socket.io').listen(process.env.port||5000);

io.on('connection',function () {
    console.log('client connected');

    io.on('data',function (data) {
        console.log(`data received is '${data}'`)
    })

});

我缺少什么?

服务器代码需要侦听来自特定
套接字.on()
,而不是
io.on()
的传入事件<代码>io是服务器。它会收到新连接的通知,但不会收到给定连接上的单个消息。您必须侦听特定套接字上的事件才能从客户端接收数据

因此,将其更改为(将
io
更改为
socket
,并将
socket
参数添加到
io.on('connection',function(socket)();
处理程序(请参见下面添加的
socket
的两个位置):


注意:在两个地方添加了
socket

好的,它确实起作用了…快速解释:我错在哪里了?@wawa-你看到你的代码中的
io.on()
,我把它改成了
socket.on()
,把
socket
参数添加到
io.on('connection',function(socket){…})
handler?啊哈!是的!好的,我知道了。谢谢你的帮助!但是io和socket有什么区别?
const io = require('socket.io').listen(process.env.port||5000);

io.on('connection', function(socket) {
    console.log('client connected');

    // listen for incoming data msg on this newly connected socket
    socket.on('data',function (data) {
        console.log(`data received is '${data}'`)
    });

});