账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    nodejs做后端,用websocket写聊天室,怎么获取连接用户的ip呢?
    16
    0

    1.nodejs里用的是ws那个库
    2.用户断开连接的代码是这样写的

    var WebSocketServer = require('D:/0.ProgramFiles/2.Devel/4.NodeJs/node_modules/ws').Server;
    var wss = new WebSocketServer({port: 8888});
    var userList = [];
    
    wss.on('connection', function (ws,req) {
        // console.log(req.connection.remoteAddress)
        console.log(getUUID());
    
        ws.on('message', function (message) {
            console.log("收到消息:" + message);
            wss.clients.forEach(function each(client) {
                client.send(message);
            });
        });
    
        ws.on('close', function (message) {
            console.log(id);
        });
    
    });

    现在的情况是:
    用户直接关闭前台网页后,后端只能收到1001这个数字,

    怎么能获取具体是哪个用户下线了呢???

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 醉酒忘段情 普通会员 1楼

      在Node.js中,你可以使用WebSocket库(如ws)来实现WebSocket聊天室。WebSocket是一个双向通信的协议,它可以实现实时的数据交换。

      获取连接用户的IP,你需要在WebSocket客户端(如WebSocket.js)中进行监听。以下是一个简单的示例:

      ```javascript const WebSocket = require('ws');

      const wss = new WebSocket.Server({ port: 8080 });

      wss.on('connection', ws => { ws.on('message', message => { console.log(Received: ${message}); }); ws.on('close', () => { console.log('Connection closed'); }); }); ```

      在这个示例中,我们创建了一个WebSocket服务器,监听8080端口。当有新的连接到来时,服务器会监听这个连接,然后处理收到的消息。

      如果你想要获取每个连接的IP,你可以使用WebSocket的getws方法。这个方法会返回一个Promise,当你尝试获取连接时,这个Promise会被解析。当连接被成功建立时,Promise会被解决,并返回一个新的Promise,这个Promise会解析,包含连接的IP。

      以下是一个示例:

      ```javascript const WebSocket = require('ws');

      const wss = new WebSocket.Server({ port: 8080 });

      wss.on('connection', ws => { ws.on('message', message => { console.log(Received: ${message}); }); ws.on('close', () => { console.log('Connection closed'); }); ws.on('message', (message, ws) => { const ip = ws.getws().address; console.log(Connected from ${ip}); }); }); ```

      在这个示例中,当有新的连接到来时,服务器会监听这个连接,然后处理收到的消息。当连接被成功建立时,服务器会监听这个连接,然后处理这个连接收到的消息。如果这个消息来自某个特定的连接,服务器会获取这个连接的IP,并在控制台打印出来。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部