为什么 remoteAddress 被隐藏了?
Why is remoteAddress hidden?
我正在使用 Node.js 和 https://github.com/websockets/ws。
我正在尝试将用户 remoteAddress 存储在临时套接字变量中。我可以通过以下方式访问此变量:
socket.upgradeReq.connection.remoteAddress
问题是,remoteAddress 到底从哪里来的?甚至在 lib 目录中的任何 WS node_plugin 文件中都找不到变量 'remoteAddress'。 (我用 Notepad++ 搜索了每个文件。)
我找到访问这个变量的唯一原因是来自这个主题:How to get client IP address using websocket (einaros / ws) lib in node.js?
哎呀,即使在我的控制台中显示 console.log(self.upgradeReq.connection);
我仍然找不到它!
对象控制台列表图片:
在世界的哪个地方?我错过了什么吗?
它来自 Node.js 的内置 net
模块。以下是如何追踪它:
ws documentation 将 upgradeReq
称为 "The HTTP request that initiated the upgrade"。浏览 ws
代码可以清楚地看到它使用 Node.js 的内置 http
库来处理 HTTP 请求。
Node.js http
request documentation 表示 http.ClientRequest.connection
是对给定请求的基础 TCP socket
的引用。
Node.js 的 TCP 代码在 net
库中。 net
docs 文档 socket.remoteAddress
.
我正在使用 Node.js 和 https://github.com/websockets/ws。
我正在尝试将用户 remoteAddress 存储在临时套接字变量中。我可以通过以下方式访问此变量:
socket.upgradeReq.connection.remoteAddress
问题是,remoteAddress 到底从哪里来的?甚至在 lib 目录中的任何 WS node_plugin 文件中都找不到变量 'remoteAddress'。 (我用 Notepad++ 搜索了每个文件。)
我找到访问这个变量的唯一原因是来自这个主题:How to get client IP address using websocket (einaros / ws) lib in node.js?
哎呀,即使在我的控制台中显示 console.log(self.upgradeReq.connection);
我仍然找不到它!
对象控制台列表图片:
在世界的哪个地方?我错过了什么吗?
它来自 Node.js 的内置 net
模块。以下是如何追踪它:
ws documentation 将 upgradeReq
称为 "The HTTP request that initiated the upgrade"。浏览 ws
代码可以清楚地看到它使用 Node.js 的内置 http
库来处理 HTTP 请求。
Node.js http
request documentation 表示 http.ClientRequest.connection
是对给定请求的基础 TCP socket
的引用。
Node.js 的 TCP 代码在 net
库中。 net
docs 文档 socket.remoteAddress
.