示例#1
0
 protected override bool HasReceive(ChatMessage message)
 {
     var m = message;
     if (m == null)
         return false;
     if (m.Version <= _user.ChatVesion)
         return false;
     if (m.SendDate.AddMinutes(MsgTimeOut) <= DateTime.Now)
         return false;
     _user.ChatVesion = m.Version;
     Console.WriteLine("user:{0} set chat ver:{1}", _user.UserName, _user.ChatVesion);
     return true;
 }
示例#2
0
 /// <summary>
 /// Writes the log.
 /// </summary>
 /// <param name="message">Message.</param>
 protected abstract void WriteLog(ChatMessage message);
示例#3
0
 /// <summary>
 /// Determines whether this instance has receive the specified message.
 /// </summary>
 /// <returns><c>true</c> if this instance has receive the specified message; otherwise, <c>false</c>.</returns>
 /// <param name="message">Message.</param>
 protected abstract bool HasReceive(ChatMessage message);
示例#4
0
 /// <summary>
 /// Sends the whisper.
 /// </summary>
 /// <param name="toUserId">To user identifier.</param>
 /// <param name="message">Message.</param>
 public void SendWhisper(int toUserId, ChatMessage message)
 {
     //系统发私聊出现两条的问题
     if (_userId != toUserId)
     {
         _whisperCacheSet.Add(_userId, message);
     }
     _whisperCacheSet.Add(toUserId, message);
     WriteLog(message);
 }
示例#5
0
 /// <summary>
 /// Send the specified message.
 /// </summary>
 /// <param name="message">Message.</param>
 public void Send(ChatMessage message)
 {
     _chatCacheSet.Add(message);
     WriteLog(message);
 }
示例#6
0
		/// <summary>
		/// Sends the whisper.
		/// </summary>
		/// <param name="toUserId">To user identifier.</param>
		/// <param name="message">Message.</param>
        public void SendWhisper(int toUserId, ChatMessage message)
        {
            message.ExpiredTime = message.SendDate;
            //系统发私聊出现两条的问题
            if (_userId != toUserId)
            {
                _whisperCacheSet.Add(_userId, message);
            }
            _whisperCacheSet.Add(toUserId, message);
            WriteLog(message);
        }
示例#7
0
		/// <summary>
		/// Send the specified message.
		/// </summary>
		/// <param name="message">Message.</param>
        public void Send(ChatMessage message)
		{
		    message.ExpiredTime = message.SendDate;
            _chatCacheSet.Add(message);
            WriteLog(message);
        }
示例#8
0
        protected override void WriteLog(ChatMessage message)
        {
            var chatData = message as ChatData;
            if (chatData == null) return;

            var chatLog = new ChatLog
            {
                FromUserID = chatData.FromUserID,
                FromUserName = chatData.FromUserName,
                ToUserID = chatData.ToUserID,
                ChatType = chatData.ChatType,
                Content = chatData.Content,
                SendDate = chatData.SendDate
            };
            using (var sender = DataSyncManager.GetDataSender())
            {
                sender.Send(chatLog);
            }
        }
示例#9
0
 protected override bool HasReceive(ChatMessage message)
 {
     var m = message as ChatData;
     return m != null && m.Version > _user.Property.ChatVesion; //&& m.SendDate.AddMinutes(MsgTimeOut) > DateTime.Now;
 }
示例#10
0
        protected override void WriteLog(ChatMessage message)
        {
            var chatData = message as ChatData;
            if (chatData == null) return;

            string guildID = string.Empty;
            if (chatData.ChatType == ChatType.Guild)
            {
                GameUser user = new GameDataCacheSet<GameUser>().FindKey(chatData.FromUserID.ToString());
                if (user == null)
                {
                    user = new GameDataCacheSet<GameUser>().FindKey(chatData.ToUserID.ToString());
                }
                if (user != null)
                {
                    guildID = user.MercenariesID;
                }
            }
            var chatLog = new UserChatLog
            {
                ChatID = Guid.NewGuid().ToString(),
                FromUserID = chatData.FromUserID.ToString(),
                FromUserName = chatData.FromUserName,
                ToUserID = chatData.ToUserID.ToString(),
                ToUserName = chatData.ToUserName,
                ChatType = chatData.ChatType,
                Content = chatData.Content,
                SendDate = chatData.SendDate,
                GuildID = guildID,
            };
            using (var sender = DataSyncManager.GetDataSender())
            {
                sender.Send(chatLog);
            }
        }
示例#11
0
 protected override bool HasReceive(ChatMessage message)
 {
     var m = message as ChatData;
     return m != null && m.Version > _user.ChatVesion &&
         m.SendDate.AddMinutes(MsgTimeOut) > DateTime.Now &&
         (string.IsNullOrEmpty(m.GuildID) || m.GuildID.Equals(_user.MercenariesID));
 }
示例#12
0
 protected override void WriteLog(ChatMessage message)
 {
 }