gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:35:20 24 4
gpt4 key购买 nike

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

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

});

我错过了什么?

最佳答案

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

因此,更改为此(在一个位置将 io 更改为 socket 并将 socket 参数添加到 io.on( 'connection', function(socket) ()); 处理程序(请参阅下面添加 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}'`)
});

});

注意:在两个地方添加socket

关于node.js - 如何将数据从套接字 IO 客户端发送到套接字 IO 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50400416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com