在套接字.io与node.js,我如何确定特定连接的服务器IP



最终,这里的目标是使用套接字处理DNS轮询。,以协调不同的连接(套接字)。. io和jQuery ajax),所以当一个名称映射到多个服务器时,它们会到同一个服务器。

使用这段代码,我能够找到传入websockets连接的客户端端IP地址:
var app = express();
   ...
var server = http.createServer(app);
   ...
var io = socketio.listen(server);
io.on('connection', function(socket) {
  var addr = socket.handshake.address;
  logger.info("Just got incoming connection from client " + addr.address
              + ":" + addr.port);

但是我如何找到这个套接字的服务器端 IP地址?我想将服务器端IP地址发送到客户端(使用socket.emit('serverSideIp': <server-IP>)),以便用于诊断目的,我们可以跟踪正在使用的特定IP地址。另外,当一个套接字。io连接失败并转到不同的IP,我想将客户端AJAX请求重定向到该IP,因此客户端不会在同一时间与不同的服务器交谈。

编辑:在node.js中获取本地IP地址不能回答我的问题。答案是,"我的IP地址列表是什么?"我的问题是,"给定一个特定的套接字,该特定套接字的本地地址(IP和端口)是什么",这在多宿主主机上无法通过从操作系统获取地址列表来回答。在Java或c#中,获取套接字的本地和远程端口和IP地址非常简单。如何在node.js中为套接字执行此操作?IO"套接字"连接?

插座。IO正在监听websocket请求,但它是在Express建立的HTTP连接上这样做的。您可以找到Express接受HTTP连接的地址,如下所示:

app.get('/', function (req, res) {
    console.log(req.socket.address());

也就是说,不要等到websocket请求才算出接收地址;如果在Socket期间需要,可以将其存储起来以备以后使用。IO连接事件

相关内容

  • 没有找到相关文章

最新更新