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(); }
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); }