using Best.WebSockets; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using UnityEngine; namespace Assets.MyGame.Scripts.Net { public partial class WebSocketManager : MonoSingleton { public void OnMessage(WebSocket web, string msg, SocketType type) { Debug.Log($"[WebSocket] {type} 收到消息: {msg}"); msg = msg.Substring(0, msg.Length - 1); var v = JsonConvert.DeserializeObject>(msg); if (v == null) { return; } // TODO: 这里可以做统一消息分发 #region 消息处理 switch ((MessageType)v.type) { case MessageType.Invocation: switch (v.target) { case "GetRoomListResult": //UIManager.Instance.Get(UIPanel.SelectRoomPenel); WebSocketReponseList.GetRoomListResult(msg); break; case "RoomJoinNotice": WebSocketReponseList.RoomJoinNotice(msg); break; case "RoomInfo": WebSocketReponseList.RoomInfo(msg); break; case "RoomKillNotice": WebSocketReponseList.RoomKillNotice(msg); break; case "SyncPlayerGold": WebSocketReponseList.SyncPlayerGold(msg); break; default: break; } break; case MessageType.StreamItem: break; case MessageType.Completion: break; case MessageType.StreamInvocation: break; case MessageType.CancelInvocation: break; case MessageType.Ping: break; case MessageType.Close: break; default: break; } #endregion } } }