为什么要隐藏remoteAddress?

时间:2015-03-01 02:22:41

标签: javascript node.js websocket

我将Node.js与https://github.com/websockets/ws一起使用。

我试图将用户remoteAddress存储在临时套接字变量中。我可以通过以下方式访问此变量 socket.upgradeReq.connection.remoteAddress

问题是,世界上remoteAddress的来源是什么?变量' remoteAddress'甚至在lib目录中的任何WS node_plugin文件中都找不到。 (我使用Notepad ++搜索每个文件。)

我找到访问此变量的唯一原因来自此主题: How to get client IP address using websocket (einaros / ws) lib in node.js?

哎呀,即使在我的控制台中显示console.log(self.upgradeReq.connection);,我仍然找不到它!

对象控制台列表的图像:

Enter image description here

Enter image description here

世界上哪里?我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

它来自Node.js的内置net模块。以下是如何追踪它:

ws documentationupgradeReq称为"启动升级的HTTP请求"。浏览ws代码可以清楚地表明它使用Node.js的内置http库来处理HTTP请求。

Node.js http request documentation表示http.ClientRequest.connection是对给定请求的基础TCP socket的引用。

Node.js的TCP代码位于net库中。 net docs文档socket.remoteAddress