【问题标题】:How to get unique client ID in socket.io?如何在 socket.io 中获取唯一的客户端 ID?
【发布时间】:2017-08-18 17:45:37
【问题描述】:

在我的代码“main.js”中,我试图打印客户端的套接字 ID。当我将客户端连接到我的服务器“main.js”时,代码不会在控制台或浏览器中打印任何内容。

服务器端代码(main.js):

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var port = 8000;
server.listen(port)

app.get('/',function(req,res){
    res.send({name:ID});
});

var ID;
io.on('connection',function(socket){
        ID = socket.id;
        console.log('client id - '+ID);     
});

【问题讨论】:

  • 湿婆,你是怎么回答下面这个问题的?

标签: node.js express socket.io client-server


【解决方案1】:

看起来像一个小错误。 Socket io 服务器事件不是connections(复数),而是connect / connectionSee docs.

这是一个工作示例:

server.js

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var port = 8000;
server.listen(port)

app.get('/',function(req,res){
    res.sendFile(__dirname + '/index.html');
});

io.on('connection',function(socket){
  ID = socket.id;
  console.log('client id - '+ socket.id);     
})

index.html

<!doctype html>  
<html lang="en">  
<head></head>
<body>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>    
    <script>  
        var socket = io.connect('http://localhost:8000');
        socket.on('connect', function(data) {
            console.log('socket connected')
         });
    </script>        
</body>
</html> 

我可以确认这在服务器和客户端上都有效。

【讨论】:

    猜你喜欢
    • 2011-10-22
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    相关资源
    最近更新 更多