有没有办法在执行命令后为某些客户端设置socket.io侦听器?例如:
socket.on('setupServer', function (data) {
console.log("setupServer called");
// Now set up listeners
socket.on('serverAction', function (data) {
console.log('Listener for clients calling setupServer');
});
});
在上面,客户端已连接并已向node.js服务器发出'setupServer'命令。服务器现在从特定客户端侦听“serverAction”。如果不首先调用'setupServer',其他客户端将无法使用'serverAction'。
答案 0 :(得分:0)
您可以创建room并验证用户的某些数据,然后将这些用户加入该会议室,然后向该会议室中的用户发送一些事件。
像这样。
<强> server.js 强>
var io = require('socket.io')(server);
io.on('connection',function(socket){
socket.emit('auth_user')
socket.on('response_from_user',function(data){
if(data.name === "Blashadow"){
//join that user to the room
socket.join('/room',function(){
//emit some custom event to users in that room
io.in('/room').emit('custom_event_room', { info: 'new used connected from room' });
});
}
});
});
<强> client.html 强>
var socket = io('localhost');
socket.on('auth_user', function (data) {
socket.emit('response_from_user', { name : "Blashadow" });
});
socket.on('custom_event_room',function(data){
console.log(data);
});