我有一个关于客户端管理socket.io与node.js
的问题我正在运行一个非常基本的socket.io应用程序,其中有几个socket.io-clients连接到socket.io-server。当我尝试填充客户列表时,我这样做:
server.js:
var clients = [];
io.on('connection', function (socket) {
socket.emit('whoareyou');
socket.on('hithere', function(name){
clients.push(name);
socket.emit('clients', clients);
console.log(name+" connected");
socket.on('disconnect', function(){
console.log(name+" disconnected");
clients.splice(clients.indexOf(name), 1);
});
});
});
clients.js
var socket = io.connect(server, {
port: 80
});
socket.on('whoareyou', function(){
socket.emit('hithere',hostname);
});
});
clients-emit用于填充客户列表的网页,因为我真的不知道如何将这个列表与运行在同一台机器上的网络服务器交换而不会发出。
现在,我能做的就是跳过整个whoareyou和hithere-crap并将套接字保存为客户端中的JSON数组。关于这个的丑陋细节是我只想使用客户端的主机名作为昵称,这不是socket-JSON的一部分(顺便说一句:ip-address是它的一部分)。
socket-io docs在这里展示了一个很好的聊天室示例:http://socket.io/get-started/chat/但是遗漏了有趣的部分。
有人知道如何做到这一点的好方法吗?