فهرست منبع

消息发送整改

8 سال پیش
والد
کامیت
22542c4ec2
1فایلهای تغییر یافته به همراه11 افزوده شده و 2 حذف شده
  1. 11 2
      src/server/models/sessions/sessions.js

+ 11 - 2
src/server/models/sessions/sessions.js

@ -637,13 +637,20 @@ class Sessions extends RedisModel {
            if (res) {
                redis.hmgetAsync(sessionKey, ["type", "name"]).then(function (res) {
                    let sessionType = res[0];
                    let sessionName = res[1];
                    if (sessionType == null) {
                        ModelUtil.emitError(self.eventEmitter, "Session with id " + sessionId + " not found.");
                        return;
                    }
                    //消息保存到REDIS
                    messages.saveMessageToRedis(sessionId, sessionType, messageId, message);
                    //更新REDIS最后一条消息
                    Messages.updateLastContent(sessionKey, sessionType, sessionName, message);
                    //更新用户最后一次获取消息的时间
                    Sessions.updateParticipantLastFetchTime(sessionId, message.sender_id, message.timestamp.getTime());
                    //更新最后一条消息到数据库
                    SessionRepo.updateSessionLastStatus(message.sender_id,message.sender_name,message.timestamp,message.content,message.content_type,sessionId);
                    //将消息保存到数据库
                    messages.saveMessageToMysql(sessionId, sessionType, messageId, message, function (err, res) {
                        if (err) {
                            ModelUtil.emitError(self.eventEmitter, {message: "Failed to save message to mysql: " + err});
@ -711,8 +718,9 @@ class Sessions extends RedisModel {
                        throw "session is not found";
                    }
                }).then(function (res) {
                    // 更新消息存储
                    // 更新消息存储REDIS
                    messages.saveMessageToRedis(sessionId, sessionType, messageId, message);
                    //更新消息存储到mysql
                    messages.saveMessageToMysql(sessionId, sessionType, messageId, message);
                    // 更新会话最新状态及成员最后一次消息获取时间
                    Sessions.updateParticipantLastFetchTime(sessionId, message.sender_id, message.timestamp.getTime());
@ -720,6 +728,7 @@ class Sessions extends RedisModel {
                    Messages.updateLastContent(session_key, sessionType, sessionName, message);
                    //更新session实体的最后一条消息
                    SessionRepo.updateSessionLastStatus(message.sender_id,message.sender_name,message.timestamp,message.content,message.content_type,sessionId);
                    handler(null, messageId);
                }).then(function (res) {
                    // 推送消息