【问题标题】:How to get ip in socket io如何在socket io中获取ip
【发布时间】:2015-09-05 04:00:25
【问题描述】:
var app = require("express")();
var server = require("http").Server(app);
var io = require("socket.io")(server);
var requestIp = require('request-ip');
server.listen(3000);

var ipMiddleware = function(req, res) {
    return requestIp.getClientIp(req);
};

var ip = null;
app.get("/", function (req, res) {
   ip = ipMiddleware(req, res);
   res.sendFile(__dirname + "/index.html");
});

io.on("connection", function (socket) {
   // send the ip to user
});

我的问题是,我想用 express 获取客户端的 ip 地址并将 ip 地址发送给客户端,ips 应该是不同的,我怎样才能发出我用 express 获得的 ip?谢谢你

【问题讨论】:

  • 试试socket.request.connection.remoteAddress
  • @laggingreflex 有没有可能我得到远程地址 null ?谢谢你的回答
  • Try one of these(注意,reqsocket.request

标签: node.js express socket.io


【解决方案1】:

你可以使用这样的东西。我在这里使用socket.io方法获取客户端ip地址。

io.on("connection", function (socket) {
    var clientIp = socket.request.connection.remoteAddress;
    socket.emit('eventName',{ip : clientIp}); //emit it back to client
});

查看此stackoverflow thread 了解如何获取不同socket.io 版本的客户端IP。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多