客户端如何根据指定的types连接到node.js服务器

我devise了这个服务器,当所有的客户端必须向特定的客户端发送广播消息时,它就会广播给所有的客户端。 我开始工作的客户端代码连接到它基于在那里设置的参数,但我有一个混淆,当客户端A应该连接时,消息是为客户端A或客户端B需要连接基于论据。 以下是服务器代码。 客户端伪代码将不胜感激。 谢谢

//send messages to game clients and forward to bay var socket_cl = io.listen(server); socket_cl.on('connection', function (client) { client.on('message', function (data) { broadcast(data); // broadcast to all clients // OR //search for kiosk / the right kiosk for machine which sent message //to be forwarded bayboard client //after this find the location of that kiosk and send JSON.parse(data); if (data.type == 'bb_message') { var kiosk = readerEngine.getKiosk(client.request.socket.remoteAddress); bayboard_location_map[kiosk.location_id].send(data.message); } socket.clients[id].send(data); //send message to bayclients }); client.on('disconnect', function () { console.log('Client Disconnected.'); }); 

我想你的意思是你想发送数据到一个特定的客户端? 你的服务器代码看起来像它将基于你从客户端传递的ID进行查找?

这样的:

 // Client side if ( we want to send to a particular client ) { socket.send({destination: desination_id, payload: payload}); } else { socket.send({destination: 'all', payload: payload}); } // Server side client.on('message', function (data) { if (data.destination == 'all') { socket.broadcast(data.payload); } else { var destination = lookupDestination(data.destination); destination.send(data.payload) } }); 

我不确定它如TCP / IP套接字一样简单,因为一旦客户端套接字被打开,在服务器中,它就可以用来与特定的客户端进行通信。

在这种情况下,我会做的是循环所有打开的套接字(客户端连接),并发送每个,作为广播的替代。

亲切的问候,

奥伦