HaoYueTunnel/ClientCore/Network/NetworkHelper.cs

96 lines
2.9 KiB
C#
Raw Normal View History

2023-05-23 17:57:24 +08:00
using AxibugProtobuf;
2023-06-15 15:45:58 +08:00
using ClientCore.Enum;
using ClientCore.Event;
2023-05-23 17:57:24 +08:00
using HaoYueNet.ClientNetwork;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
2023-05-25 18:30:22 +08:00
namespace ClientCore.Network
2023-05-23 17:57:24 +08:00
{
/// <summary>
/// 继承网络库,以支持网络功能
/// </summary>
public class NetworkHelper : NetworkHelperCore
{
2023-06-15 15:45:58 +08:00
ServerType mServerType;
public long mUID { get; private set; } = -1;
public NetworkHelper(ServerType serverType,long UID = -1)
2023-05-23 17:57:24 +08:00
{
//指定接收服务器数据事件
2023-12-25 17:43:11 +08:00
OnReceiveData += GetDataCallBack;
2023-05-23 17:57:24 +08:00
//断开连接
OnClose += OnConnectClose;
//网络库调试信息输出事件,用于打印连接断开,收发事件
OnConnected += NetworkConnected;
2023-12-25 17:43:11 +08:00
OnLogOut += NetworkDeBugLog;
2023-06-15 15:45:58 +08:00
mServerType = serverType;
mUID = UID;
2023-05-23 17:57:24 +08:00
}
public void NetworkConnected(bool IsConnect)
{
if (IsConnect)
2023-06-15 15:45:58 +08:00
{
EventSystem.Instance.PostEvent(EEvent.OnSocketConnect, mServerType, true);
2023-05-23 17:57:24 +08:00
NetworkDeBugLog("服务器连接成功");
2023-06-15 15:45:58 +08:00
}
2023-05-23 17:57:24 +08:00
else
{
2023-06-15 15:45:58 +08:00
EventSystem.Instance.PostEvent(EEvent.OnSocketConnect, mServerType, false);
2023-05-23 17:57:24 +08:00
NetworkDeBugLog("服务器连接失败");
//to do 重连逻辑
}
}
public void NetworkDeBugLog(string str)
{
//用于Unity内的输出
//Debug.Log("NetCoreDebug >> "+str);
2024-04-26 17:51:55 +08:00
//App.log.Info("NetCoreDebug >> " + str);
App.log.Debug(str);
2023-05-23 17:57:24 +08:00
}
/// <summary>
/// 接受包回调
/// </summary>
/// <param name="CMDID">协议ID</param>
/// <param name="ERRCODE">错误编号</param>
/// <param name="data">业务数据</param>
public void GetDataCallBack(int CMDID, int ERRCODE, byte[] data)
{
2023-06-16 18:04:08 +08:00
//NetworkDeBugLog("收到消息 CMDID =>" + CMDID + " ERRCODE =>" + ERRCODE + " 数据长度=>" + data.Length);
2023-05-23 17:57:24 +08:00
try
{
2023-05-25 18:30:22 +08:00
//抛出网络数据
2023-06-15 16:48:37 +08:00
if (mServerType == ServerType.TcpP2PTarget)
{
NetMsg.Instance.PostNetMsgEvent(CMDID, mUID,data);
}
else
{
NetMsg.Instance.PostNetMsgEvent(CMDID, data);
}
2023-05-23 17:57:24 +08:00
}
catch (Exception ex)
{
NetworkDeBugLog("逻辑处理错误:" + ex.ToString());
}
}
/// <summary>
/// 关闭连接
/// </summary>
public void OnConnectClose()
{
NetworkDeBugLog("OnConnectClose");
2023-06-15 15:45:58 +08:00
EventSystem.Instance.PostEvent(EEvent.OnSocketDisconnect, mServerType, mUID);
2023-05-23 17:57:24 +08:00
}
}
}