/// <summary> /// 프로그램이 Name Server에서 처리해야 하는 모든 동작과 명령을 포함한다. /// </summary> public void ReceiveRoomData() { var msg = _networkManager.Receive(); if (msg == null) { return; } msg = msg.TrimEnd('\0'); var tokens = msg.Split(AppData.Delimiter); foreach (var token in tokens) { if (token == "") { continue; } if (token.Contains(char.ToString(AppData.ServerCommand))) { if (token.Contains(CommendBook.HEADER_ROOMLIST)) { var roomList = token.Split(AppData.DelimiterUI).ToList(); roomList.Remove(CommendBook.HEADER_ROOMLIST); roomList.Remove(""); _scrollManager.AddItemsFromList(roomList); continue; } else if (token == CommendBook.START_DRAWING) { _networkManager.PauseNetworkThread(); _networkManager.SwitchRoomServer(); continue; } else if (token == CommendBook.ERROR_MESSAGE) { _warningOverlayManager.ShowOverlay(""); continue; } else if (token == CommendBook.COMMEND_ERROR) { _warningOverlayManager.ShowOverlay("Invalid-Commend"); continue; } else if (token == CommendBook.PASSWORD_ERROR) { _warningOverlayManager.ShowOverlay("Wrong-Pw"); continue; } else if (token == CommendBook.NO_ROOM_ERROR) { _warningOverlayManager.ShowOverlay("No-Room"); continue; } } } }