public void DoHandle(byte[] data) { BaseResponseData baseResponseData = Utils.ToObjectFromBytes <BaseResponseData>(data); ListRoomsPanel listRoomsPanel = HGL_WindowManager.I.GetWindow("ListRoomsPanel").GetComponent <ListRoomsPanel>(); listRoomsPanel.Init(Utils.ToObjectFromBytes <List <Room> >((byte[])baseResponseData.GetValue("Rooms"))); HGL_WindowManager.I.OpenWindow(null, null, "ListRoomsPanel", false, true); Debug.Log(string.Format("Response, request type: {0}, result: {1}", baseResponseData.Request, baseResponseData.Result)); }
private void HandleOperation(byte[] data) { RequestTypes code = (RequestTypes)data [0]; switch (code) { case RequestTypes.Login: if (((RequestResult)data [1]) == RequestResult.Ok) { Debug.Log("Success login"); } else { Debug.Log("Login error"); } break; case RequestTypes.SendMessage: Debug.Log(data.Length); if (data.Length == 2) { } else { Debug.Log(Encoding.UTF8.GetString(data, 1, data.Length - 1)); messages.Enqueue(new Message(MessageLevel.UserMessage, Encoding.UTF8.GetString(data, 1, data.Length - 1))); } break; case RequestTypes.EnterInRoom: if (((RequestResult)data [1]) == RequestResult.Ok) { string nickname = Encoding.UTF8.GetString(data, 2, data.Length - 2); if (nickname == this.client.Nickname) { Debug.Log("Entered in room"); } else { messages.Enqueue(new Message(MessageLevel.Info, string.Format("{0} was entered", nickname))); } } else { Debug.Log(((RequestResult)data [1]).ToString()); } break; case RequestTypes.CreateRoom: if (((RequestResult)data [1]) == RequestResult.Ok) { Debug.Log("Created room"); } else { Debug.Log(((RequestResult)data [1]).ToString()); } break; case RequestTypes.GetListRooms: if (((RequestResult)data [1]) == RequestResult.Ok) { List <Room> rooms = null; using (MemoryStream ms = new MemoryStream(Utils.SubArray <byte> (data, 2, data.Length - 2))) { IFormatter br = new BinaryFormatter(); rooms = (br.Deserialize(ms) as List <Room>); } UnityThreadHelper.Dispatcher.Dispatch(() => { ListRoomsPanel listRoomsPanel = HGL_WindowManager.I.GetWindow("ListRoomsPanel").GetComponent <ListRoomsPanel> (); listRoomsPanel.Init(rooms); HGL_WindowManager.I.OpenWindow(null, null, "ListRoomsPanel", false, true); }); } else { Debug.Log(((RequestResult)data [1]).ToString()); } break; default: Debug.Log("Unknow operation"); break; } }