Socket.io自定义客户端ID
我正在与socket.io聊天应用程序,我想用我的自定义客户端ID,而不是默认的(8411473621394412707,1120516437992682114)。连接时是否有任何发送自定义标识符的方式,或仅使用某种方式来跟踪每个ID的自定义名称?谢谢!
回答:
您可以在服务器上创建一个数组,并在其上存储自定义对象。例如,您可以存储Socket.io创建的ID和每个客户端发送到服务器的自定义ID:
var util = require("util"),    io = require('/socket.io').listen(8080),
    fs = require('fs'),
    os = require('os'),
    url = require('url');
    var clients =[];
    io.sockets.on('connection', function (socket) {
        socket.on('storeClientInfo', function (data) {
            var clientInfo = new Object();
            clientInfo.customId         = data.customId;
            clientInfo.clientId     = socket.id;
            clients.push(clientInfo);
        });
        socket.on('disconnect', function (data) {
            for( var i=0, len=clients.length; i<len; ++i ){
                var c = clients[i];
                if(c.clientId == socket.id){
                    clients.splice(i,1);
                    break;
                }
            }
        });
    });
在此示例中,您需要从每个客户端调用 。
<script>    var socket = io.connect('http://localhost', {port: 8080});
    socket.on('connect', function (data) {
        socket.emit('storeClientInfo', { customId:"000CustomIdHere0000" });
    });
</script>
希望这可以帮助。
以上是 Socket.io自定义客户端ID 的全部内容, 来源链接: utcz.com/qa/427705.html






