2023-05-23 17:57:24 +08:00
|
|
|
|
using AxibugProtobuf;
|
|
|
|
|
using HaoYueNet.ServerNetwork;
|
2023-06-15 15:45:58 +08:00
|
|
|
|
using ServerCore.Common.Enum;
|
|
|
|
|
using ServerCore.Event;
|
2023-05-25 18:30:22 +08:00
|
|
|
|
using ServerCore.Manager;
|
2023-06-15 15:45:58 +08:00
|
|
|
|
using System.Net;
|
2023-05-23 17:57:24 +08:00
|
|
|
|
using System.Net.Sockets;
|
|
|
|
|
|
2023-05-25 18:30:22 +08:00
|
|
|
|
namespace ServerCore.NetWork
|
2023-05-23 17:57:24 +08:00
|
|
|
|
{
|
|
|
|
|
public class IOCPNetWork : SocketManager
|
|
|
|
|
{
|
2023-06-15 15:45:58 +08:00
|
|
|
|
ServerType mServerType;
|
|
|
|
|
public IOCPNetWork(int numConnections, int receiveBufferSize, ServerType serverType)
|
2023-05-23 17:57:24 +08:00
|
|
|
|
: base(numConnections, receiveBufferSize)
|
|
|
|
|
{
|
2023-06-15 15:45:58 +08:00
|
|
|
|
mServerType = serverType;
|
2023-05-23 17:57:24 +08:00
|
|
|
|
ClientNumberChange += IOCPNetWork_ClientNumberChange;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void IOCPNetWork_ClientNumberChange(int num, AsyncUserToken token)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Client数发生变化");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 接受包回调
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="CMDID">协议ID</param>
|
|
|
|
|
/// <param name="ERRCODE">错误编号</param>
|
|
|
|
|
/// <param name="data">业务数据</param>
|
|
|
|
|
public override void DataCallBack(AsyncUserToken token, int CMDID, byte[] data)
|
|
|
|
|
{
|
2023-06-15 15:45:58 +08:00
|
|
|
|
//DataCallBackToOld(token.Socket, CMDID, data);
|
2023-05-23 17:57:24 +08:00
|
|
|
|
ServerManager.g_Log.Debug("收到消息 CMDID =>" + CMDID + " 数据长度=>" + data.Length);
|
2023-06-15 15:45:58 +08:00
|
|
|
|
//抛出网络数据
|
|
|
|
|
NetMsg.Instance.PostNetMsgEvent(CMDID, token.Socket, data);
|
2023-05-23 17:57:24 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-06-15 15:45:58 +08:00
|
|
|
|
//public void DataCallBackToOld(Socket sk, int CMDID, byte[] data)
|
|
|
|
|
//{
|
|
|
|
|
// ServerManager.g_Log.Debug("收到消息 CMDID =>" + CMDID + " 数据长度=>" + data.Length);
|
|
|
|
|
// try
|
|
|
|
|
// {
|
|
|
|
|
// //抛出网络数据
|
|
|
|
|
// NetMsg.Instance.PostNetMsgEvent(CMDID, sk, data);
|
|
|
|
|
// }
|
|
|
|
|
// catch (Exception ex)
|
|
|
|
|
// {
|
|
|
|
|
// Console.WriteLine("逻辑处理错误:" + ex.ToString());
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
|
2023-05-23 17:57:24 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 断开连接
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sk"></param>
|
|
|
|
|
public override void OnClose(AsyncUserToken token)
|
|
|
|
|
{
|
2023-06-15 15:45:58 +08:00
|
|
|
|
ServerManager.g_Log.Debug($"断开连接,ServerType->{mServerType} | {((IPEndPoint)token.Socket.LocalEndPoint).Address}");
|
|
|
|
|
//ServerManager.g_ClientMgr.SetClientOfflineForSocket(token.Socket);
|
2023-06-02 18:30:28 +08:00
|
|
|
|
//TODO 要删除不同的
|
2023-06-15 15:45:58 +08:00
|
|
|
|
EventSystem.Instance.PostEvent(EEvent.OnSocketDisconnect, mServerType, token.Socket);
|
2023-05-23 17:57:24 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|