public override void Parse(UserClient user, byte moduleCode, byte operationCode, OperationRequest operationRequest, SendParameters sendParameters) { //构建消息 S2CMessage msg = new S2CMessage((byte)Module.ServerList, (byte)ServerListOperation.FetchAllServer); //读取配置文件 string json = File.ReadAllText(Global.AppRootFolder + "\\serverlist.json"); ServerListVo svrinfo = JsonMapper.ToObject <ServerListVo>(json); //随机服务器状态 foreach (ServerItemVo item in svrinfo.servers) { item.status = new Random().Next(1, 3); } //添加到发送字典 msg.Add(1, JsonMapper.ToJson(svrinfo)); //发送反馈 OperationResponse response = new OperationResponse((byte)moduleCode, msg); user.SendOperationResponse(response, sendParameters); Global.Info("收到客户端消息" + moduleCode + "," + operationCode); }
private void ServerListUI_OnParseHandler1(byte moduleCode, byte opCode, ExitGames.Client.Photon.OperationResponse response) { HandlerManager.GetInstance().Remove((byte)Module.ServerList, (byte)ServerListOperation.FetchAllServer); //获取服务器返回的信息 string json = response.Parameters[(byte)1].ToString(); //转为json ServerListVo list = JsonReader.Deserialize <ServerListVo>(json); ServerItemUI[] oldSvrs = m_content.GetComponentsInChildren <ServerItemUI>(); foreach (var item in oldSvrs) { Destroy(item.gameObject); } //根据服务器数据生成服务器列表 foreach (ServerItemVo svr in list.servers) { ServerItemUI mSvr = UIManager.GetInstance().GetNewUI <ServerItemUI>(); mSvr.SetServerData(svr); mSvr.OnSelectHandler += MSvr_OnSelectHandler; mSvr.transform.SetParent(m_content); } //根据内容调整滚动区域大小 RectTransform rtf = m_content as RectTransform; rtf.sizeDelta = new Vector2(561, Mathf.CeilToInt((float)list.servers.Length / 2) * 90); ScrollRect sr = GameObject.FindObjectOfType <ScrollRect>(); sr.verticalNormalizedPosition = 1; }