我正在与socket.io聊天应用程序,我想用我的自定义客户端ID,而不是默认的(8411473621394412707,1120516437992682114)。连接时是否有任何发送自定义标识符的方式,或仅使用某种方式来跟踪每个ID的自定义名称?谢谢!
8411473621394412707
1120516437992682114
您可以在服务器上创建一个数组,并在其上存储自定义对象。例如,您可以存储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; } } }); });
在此示例中,您需要从每个客户端调用 storeClientInfo 。
<script> var socket = io.connect('http://localhost', {port: 8080}); socket.on('connect', function (data) { socket.emit('storeClientInfo', { customId:"000CustomIdHere0000" }); }); </script>
希望这可以帮助。