72 lines
2.3 KiB
C#
72 lines
2.3 KiB
C#
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
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|