我将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);
,我仍然找不到它!
对象控制台列表的图像:
世界上哪里?我错过了什么吗?
答案 0 :(得分:3)
它来自Node.js的内置net
模块。以下是如何追踪它:
ws documentation将upgradeReq
称为"启动升级的HTTP请求"。浏览ws
代码可以清楚地表明它使用Node.js的内置http
库来处理HTTP请求。
Node.js http
request documentation表示http.ClientRequest.connection
是对给定请求的基础TCP socket
的引用。
Node.js的TCP代码位于net
库中。 net
docs文档socket.remoteAddress
。