gpt4 book ai didi

node.js - Socket.io:从一台服务器连接到另一台服务器

转载 作者:IT老高 更新时间:2023-10-28 23:07:57 26 4
gpt4 key购买 nike

我正在尝试使 nodejs(socket.io) 服务器与另一个服务器通信。因此客户端向“集线器”服务器发出一个事件,该服务器向第二个服务器发出一个事件以处理该操作。

我尝试过:

var io_client = require( 'socket.io-client' );

然后,

io_client.connect( "second_server_host" ); 

它似乎适用于连接,但您对此无能为力:

debug - set close timeout for client 15988842591410188424
info - socket error Error: write ECONNABORTED
at errnoException (net.js:642:11)
at Socket._write (net.js:459:18)
at Socket.write (net.js:446:15)

我想我做错了,遗漏了一些明显的东西。

有什么建议吗?

最佳答案

刚刚遇到了这个问题,还有一个类似的问题,答案要好得多。

https://stackoverflow.com/a/14118102/1068746

你可以做服务器到服务器。 “客户端”代码与浏览器上的代码相同。是不是很神奇?

我自己试过了,效果很好。。

我运行了 2 台服务器 - 使用完全相同的代码 - 一次在端口 3000 上作为服务器,另一台在端口 3001 上作为客户端。代码如下所示:

  , io = require('socket.io')
, ioClient = require('socket.io-client')

....

if ( app.get('port') == 3000 ){

io.listen(server).sockets.on('connection', function (socket) {
socket.on('my other event', function (data) {
console.log(data);
});
});
}else{
function emitMessage( socket ){
socket.emit('my other event', { my: 'data' });
setTimeout(function(){emitMessage(socket)}, 1000);
}
var socket = ioClient.connect("http://localhost:3000");
emitMessage(socket);
}

如果您在服务器端看到每秒打印“{my:data}”,则一切正常。只需确保在服务器(端口 3000)之后运行客户端(端口 3001)。

关于node.js - Socket.io:从一台服务器连接到另一台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9018888/

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