Explorar o código

医生socket开发

%!s(int64=8) %!d(string=hai) anos
pai
achega
da66ca3c3d

+ 22 - 0
src/server/models/client/wechat.client.js

@ -107,6 +107,28 @@ class WechatClient extends RedisModel {
        }
    }
    static sendMucAllRead(doctorId,loginUserId,sessionId){
        let loginClinet = clientCache.findByIdAndType(loginUserId,SOCKET_TYPES.DOCTOR);
        if(loginClinet){
            //muc是医生来获取数据不能更新成已读
            log.warn("type is muc login is doctor not send all read to other doctor!")
            return;
        }
        let doctorClient = clientCache.findByIdAndType(doctorId,SOCKET_TYPES.DOCTOR);
        if(doctorClient){
            if(doctorClient.sessionId==sessionId){
                doctorClient.socket.emit('message',{ read:"all"});
            }else{
                log.warn(" doctor not in the same session ");
            }
        }else{
            log.warn(doctorId+" target doctor is not online!");
        }
    }
    static sendReadDoctor(socket, message) {
        socket.emit('message', {
            id: message.id,

+ 12 - 4
src/server/models/sessions/sessions.js

@ -337,7 +337,6 @@ class Sessions extends RedisModel {
                            ModelUtil.emitOK(self.eventEmitter, []);
                            return;
                        }
                        callback(null, sessionIds);
                    })
            },
@ -350,7 +349,6 @@ class Sessions extends RedisModel {
                        if (!callback) {
                            callback = index, index = 0
                        }
                        let sessionId = sessionIds[index];
                        let sessionKey = RedisModel.makeRedisKey(REDIS_KEYS.Session, sessionId);
                        let participantsRoleKey = RedisModel.makeRedisKey(REDIS_KEYS.SessionParticipantsRole, sessionId);
@ -759,11 +757,16 @@ class Sessions extends RedisModel {
                                        handler(null, messages);
                                    }).then(function () {
                                        Sessions.updateParticipantLastFetchTime(sessionId, userId, new Date().getTime());
                                        if(session.type != SESSION_TYPES.GROUP){
                                        if(session.type == SESSION_TYPES.P2P){
                                            for(var j in users){
                                                if(users[j]==userId)continue;
                                                 WechatClient.sendAllRead(users[j],sessionId);
                                            }
                                        }else if(session.type == SESSION_TYPES.MUC){
                                            for(var j in users){
                                                if(users[j]==userId)continue;
                                                WechatClient.sendMucAllRead(users[j],userId,sessionId);
                                            }
                                        }
                                    })
@ -786,11 +789,16 @@ class Sessions extends RedisModel {
                                        handler(null, messages);
                                    }).then(function () {
                                        Sessions.updateParticipantLastFetchTime(sessionId, userId, new Date().getTime());
                                        if(session.type != SESSION_TYPES.GROUP){
                                        if(session.type == SESSION_TYPES.P2P){
                                            for(var j in users){
                                                if(users[j]==userId)continue;
                                                WechatClient.sendAllRead(users[j],sessionId);
                                            }
                                        }else if(session.type == SESSION_TYPES.MUC){
                                            for(var j in users){
                                                if(users[j]==userId)continue;
                                                WechatClient.sendMucAllRead(users[j],userId,sessionId);
                                            }
                                        }
                                    })
                                })