gpt4 book ai didi

javascript: 打印 websocket 客户端 IP

转载 作者:IT老高 更新时间:2023-10-28 23:23:41 26 4
gpt4 key购买 nike

node.js WebSocket 示例代码片段

我有一个使用 express 的简单 node.js 应用程序。 现在每次客户端连接到 Node 服务器时,我都会看到字符串“新客户端已连接”,但我想知道新客户端拥有哪个 IP。

var WebSocketServer = require('ws').Server;
var connIds = [];

var server = require('http').createServer(app).listen(80);

// set up the websocket server
var wss = new WebSocketServer( { server: server } );
wss.clientConnections = {};

// websocket server eventlisteners and callbacks
wss.on('connection', function (connection) {
console.log('wss.on.connection - new client connected');
...

查看代码: https://github.com/qknight/relais.js/blob/master/relais.js/server.js#L159

问题

对象 connection 具有属性,但我不明白如何查询它们或它们是什么。 我想要的只是打印客户端 IP,如果存在的话,可能还有其他类似的属性。

我该怎么做?

最佳答案

远程 IP 是升级前连接的属性:

var wss = new WebSocketServer({port: 9876});    

wss.on('connection', function(ws) {
console.log(ws.upgradeReq.connection.remoteAddress);
});

我不记得我是如何找到它的,但我知道我花了一段时间;我希望文档和代码一样好...

更新:WS 已经移动了一些东西,所以这里有一个更新的示例,说明如何在当前代码中获取原始 HTTP 信息。注意连接事件处理程序的第二个参数:

wss.on('connection', function conn(ws, req) {
var ip = req.connection.remoteAddress;
console.info(ip);
});

关于javascript: 打印 websocket 客户端 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21954715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com