如何在名称空间socket.io中连接客户端和其他客户端? dbOperations.saveRequest(db、requestId、requestTime、location、eventData.citizenId、'waiting',函数(结果){ //2.救人后,从市民所在地接附近的警察 dbOperations.fetchNearestCops(数据库、位置、坐标、函数(结果){ eventData.requestId=requestId; //3.在找到最近的警察后,向每个警察发出“求助”事件 对于(var i=0;i

如何在名称空间socket.io中连接客户端和其他客户端? dbOperations.saveRequest(db、requestId、requestTime、location、eventData.citizenId、'waiting',函数(结果){ //2.救人后,从市民所在地接附近的警察 dbOperations.fetchNearestCops(数据库、位置、坐标、函数(结果){ eventData.requestId=requestId; //3.在找到最近的警察后,向每个警察发出“求助”事件 对于(var i=0;i,socket.io,Socket.io,我想将事件发送给某个特定的警察,但不是全部。。。。。。。。。 我不知道io.socket.in如何工作,有人能给我建议一个正确的参考来继续PLZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ。因此,每当连接用户套接字时,我们首先注册该用户,因此这一层添加用户ID到socketId的映射,当用户断开连接时,我们删除基于socketId的映射 因此,如果您想

我想将事件发送给某个特定的警察,但不是全部。。。。。。。。。
我不知道io.socket.in如何工作,有人能给我建议一个正确的参考来继续PLZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ。因此,每当连接用户套接字时,我们首先注册该用户,因此这一层添加用户ID到socketId的映射,当用户断开连接时,我们删除基于socketId的映射

因此,如果您想发送给用户,请将此用户ID传递给此层,并且此层(如果有到socketId的映射)将发送数据

伪代码

dbOperations.saveRequest(db, requestId, requestTime, location, eventData.citizenId, 'waiting', function(results) {

        //2. AFTER saving, fetch nearby cops from citizen’s location
        dbOperations.fetchNearestCops(db, location.coordinates, function(results) {
            eventData.requestId = requestId;
            //3. After fetching nearest cops, fire a 'request-for-help' event to each of them
            for (var i = 0; i < results.length; i++) {
                io.sockets.in(results[i].userId).emit('request-for-help', eventData);
            }
        });
    });
});

比你多了,兄弟。
var userMap ={};
var socketMap ={};

io.sockets.on('connection', function(socket) {

   socket.on('register', function(userId, cb) {
      /*Our custom event, which on basis of userId add mapping between user and socketid*/ 
      userMap[userId] = socket.id;          //save user
      socketMap[socket.id] = userId;        //save socket
   });

   socket.on('disconnect', function(userId, cb) {
     /*When socket disconnect, remove mapping*/ 
      delete userMap[socketMap[socket.id]];         //remove user
      delete socketMap[socket.id];                  //remove socket
   });

});

/*Function used to send message*/
function sendMessage(userId){
    if(userMap[userId]){
          io.to(userMap[userId]).emit('message');
    }       
}