Files
5.24BuYu/Assets/MyGame/Scripts/Net/WebSocketManager_Message.cs
T

72 lines
2.3 KiB
C#
Raw Normal View History

2026-02-03 11:35:19 +08:00
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<WebSocketManager>
{
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<WebSocketResponseBase<object>>(msg);
if (v == null)
{
return;
}
// TODO: 这里可以做统一消息分发
#region 消息处理
switch ((MessageType)v.type)
{
case MessageType.Invocation:
switch (v.target)
{
case "GetRoomListResult":
//UIManager.Instance.Get<UIHome_BY_SelectRoomLevelPanel>(UIPanel.SelectRoomPenel);
WebSocketReponseList.GetRoomListResult(msg);
break;
case "RoomJoinNotice":
WebSocketReponseList.RoomJoinNotice(msg);
break;
case "RoomInfo":
WebSocketReponseList.RoomInfo(msg);
break;
case "RoomKillNotice":
CreateFishManager.Instance.DesFish(msg);
break;
//case "GetRoomListResult":
// 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
}
}
}