예제 #1
0
        public void CheckMessageQueue()
        {
            while (true)
            {
                if (SendingMessageQueue.SendingMessages.Count <= 0)
                {
                    Thread.Sleep(3000);
                    continue;
                }

                var currentSocket = TCPListener.Allclients.FirstOrDefault(m => m.ClientId == SendingMessageQueue.SendingMessages.Peek().ToId);
                if (currentSocket == null)
                {
//                    SendingMessageQueue.SendingMessages
//                        .Dequeue().Sendtry++;

//                    if (SendingMessageQueue.SendingMessages.Peek().Sendtry > 100)
//                    {
//
//                        SendingMessageQueue.NotConnectClientSendingMessages.Enqueue(SendingMessageQueue.SendingMessages
//                            .Dequeue());
//                    }
//                    else
//                    {
//                        SendingMessageQueue.SendingMessages.Enqueue(SendingMessageQueue.SendingMessages
//                            .Dequeue());
                    Thread.Sleep(2000);
                    //}
                }
                else
                {
                    currentSocket.SendingMessage = SendingMessageQueue.SendingMessages.Peek();
                    new Thread(Sendmessage).Start(currentSocket);
                    _userMessageRep.AddMessageToInbox(currentSocket.SendingMessage);
                    SendingMessageQueue.SendingMessages.Dequeue();
                }
            }
        }
 public void InsertMessageToInbox(MessageUM message)
 {
     _userMessageRep.AddMessageToInbox(message);
 }