如何从socket-IO客户端向socket-IO服务器发送数据?

时间:2018-05-17 20:59:24

标签: node.js socket.io

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

将sata从服务器发送到客户端没有问题。工作得很好。但是,反过来却没有用。出于某种原因,从客户端向客户端发送数据不起作用。

这是client.js

Task

这是server.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 !')
});

我错过了什么?

1 个答案:

答案 0 :(得分:0)

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

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

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}'`) }); });