Exemplo n.º 1
0
        private void eventChannelReadLoop()
        {
            while (true)
            {
                // the command string read from client
                string commandString  = "";
                bool   stillConnected = m_serverEventDeserializer.Deserialize(ref commandString);
                if (!stillConnected)
                {
                    Logging.DebugWriteLine("Server disconnected.");
                    goto loop_exit;
                }

                // an array of strings parsed from the sent command string by splitting by colon :
                // hard-coded max 10 substrings. Change if needed.
                string[] commandSplit = CpParseUtilities.SplitMessage(commandString, m_stringDelimiter, 10);


                switch (commandSplit[0].ToLower())
                {
                case "event_disconnect":
                {
                    Response response = receiveEvent_Disconnect_checked(commandSplit);
                    goto loop_exit;
                    // [break]
                }

                case "event_message_room":
                {
                    Response resonse = receiveEvent_MessageRoom_checked(commandSplit);
                    break;
                }

                case "event_message_personal":
                {
                    Response response = receiveEvent_MessagePersonal_checked(commandSplit);
                    break;
                }

                case "event_room_deleted":
                {
                    Response response = receiveEvent_RoomDeleted_checked(commandSplit);
                    break;
                }

                default:
                    Logging.DebugWriteLine(String.Format("Server sent unknown event. '{0}'.", commandString));
                    break;
                }
            }

loop_exit:
            m_server.Close();
        }
Exemplo n.º 2
0
        public static bool ReadAck(DeserializationAdapter deserializer, char delimiter, out Response response)
        {
            response = new Response(false, "");

            string reply          = "";
            bool   stillConnected = deserializer.Deserialize(ref reply);

            if (!stillConnected)
            {
                response.Message = "Server disconnected.";
                return(false);
            }

            response = ParseAck(reply, delimiter);
            return(true);
        }