Пример #1
0
    /// <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;
                }
            }
        }
    }