首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >未为Socket.io 2.0定义socket.handshake.address

未为Socket.io 2.0定义socket.handshake.address
EN

Stack Overflow用户
提问于 2019-02-28 11:14:21
回答 1查看 815关注 0票数 0

我正在尝试使用socket.handshake.address检索客户端IP地址,但它总是输出值undefined。我不确定io.on的位置是否是导致错误的主要原因。但我需要帮助输出一些值。

以下是我的代码:

代码语言:javascript
复制
var app = require('http').createServer(response);
var io = require('socket.io')(app);
var fs = require('fs');
const readline = require('readline');

let clientIP;
console.log("your ip:" +clientIP);
io.on("connection", function(socket){
    socket.on("send message", function(sent_msg, callback){
        sent_msg = "[ " + getCurrentDate() + " ]: " + sent_msg;

        io.sockets.emit("update messages", sent_msg);
        callback();
    });
    clientIP = socket.handshake.address;
});

var port = process.env.PORT || 3000;
app.listen(port);
console.log("App running on port " +port);

最终,我希望将IP地址存储到一个变量中,然后通过控制台记录它。稍后我会将该值用于不同的目的。

非常感谢!

编辑:我可以console.log(socket.handshake.address),但看起来它正在输出::1。所以我打印出了整个握手过程,这就是console.logged

代码语言:javascript
复制
{ headers: 
   { host: 'localhost:200',
     connection: 'keep-alive',
     accept: '*/*',
     'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Mobile Safari/537.36',
     referer: 'http://localhost:200/',
     'accept-encoding': 'gzip, deflate, br',
     'accept-language': 'en-US,en;q=0.9',
     cookie: 'Phpstorm-e80bf189=08d2953b-3e27-43a8-b34b-cdd36607b656; Webstorm-dddc562d=07419dd2-1d4c-40b9-bd13-7c5507036a78; _ga=GA1.1.1050967868.1539219676; Webstorm-dddc562e=7b5b97f7-e27a-471d-9a9a-553f616ec370; _ceg.s=pjjo44; _ceg.u=pjjo44; connect.sid=s%3AswIVrUf0ofg5SnevGXjW0b1j63FGeWL1.9sDRdPEtTG5eI9Z8oDjtmuakp6mo7%2B%2FdCel%2Bih4Qb1E; io=83uH7KPwAtjR7b9PAAAA' },
  time: 'Thu Feb 28 2019 15:11:33 GMT-0800 (PST)',
  address: '::1',
  xdomain: false,
  secure: false,
  issued: 1551395493723,
  url: '/socket.io/?EIO=3&transport=polling&t=MasO9T6',
  query: { EIO: '3', transport: 'polling', t: 'MasO9T6' } }

我在stackoverflow上读了一些关于IPv4和IPv6快捷键的文章,但它仍然找不到解决这个问题的答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-01 07:25:12

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54917859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档