/*******************************************************************/ /************************* PUBLIC METHODS **************************/ /*******************************************************************/ public void Communicate(Message message) { lock (this) { while (!client.Connected) { SmartConsole.PrintLine("Lost connection, reconnecting...", SmartConsole.DebugLevel.Advanced); client.Connect(); } // Send to server client.Send(message); // Wait for response List <Message> responseMessage = client.ReceiveMessages(); for (int i = 0; i < responseMessage.Count; i++) { // handle response // This is wrong Socket, but we dont use it anyway. MessagePackage package = new MessagePackage(responseMessage[i], client.Socket); messageHandler.HandleMessage(package); } } }
/*******************************************************************/ /************************ PRIVATE METHODS **************************/ /*******************************************************************/ /// <summary> /// The logic of message processors /// </summary> private void startMessageProcessor() { SmartConsole.PrintLine("Message Processor Actived", SmartConsole.DebugLevel.Advanced); while (Active) { // TODO busy waiting if (messageQueue.Queue.Count != 0) { MessagePackage package = messageQueue.Queue.Dequeue(); messageHandler.HandleMessage(package); } } SmartConsole.PrintLine("Message Processor Deactived", SmartConsole.DebugLevel.Advanced); }