mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
Update
Update
This commit is contained in:
@@ -112,7 +112,15 @@ namespace TEngine.Runtime
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="actionId"></param>
|
/// <param name="actionId"></param>
|
||||||
/// <param name="msgDelegate"></param>
|
/// <param name="msgDelegate"></param>
|
||||||
void RegisterHandler(int actionId, CsMsgDelegate msgDelegate);
|
/// <param name="checkRepeat"></param>
|
||||||
|
void RegisterHandler(int actionId, CsMsgDelegate msgDelegate,bool checkRepeat = true);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 注销网络消息包处理函数。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="actionId"></param>
|
||||||
|
/// <param name="msgDelegate"></param>
|
||||||
|
void RmvHandler(int actionId, CsMsgDelegate msgDelegate);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 连接到远程主机。
|
/// 连接到远程主机。
|
||||||
@@ -139,6 +147,14 @@ namespace TEngine.Runtime
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T">消息包类型。</typeparam>
|
/// <typeparam name="T">消息包类型。</typeparam>
|
||||||
/// <param name="packet">要发送的消息包。</param>
|
/// <param name="packet">要发送的消息包。</param>
|
||||||
void Send<T>(T packet) where T : Packet;
|
bool Send<T>(T packet) where T : Packet;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 向远程主机发送消息包并注册回调
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pack"></param>
|
||||||
|
/// <param name="resHandler"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
bool SendCsMsg(TEngineProto.MainPack pack, CsMsgDelegate resHandler = null);
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -15,7 +15,7 @@ namespace TEngine.Runtime
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private abstract class NetworkChannelBase : INetworkChannel, IDisposable
|
private abstract class NetworkChannelBase : INetworkChannel, IDisposable
|
||||||
{
|
{
|
||||||
private const float DefaultHeartBeatInterval = 30f;
|
private const float DefaultHeartBeatInterval = 30;
|
||||||
private const int MAX_MSG_HANDLE = 256;
|
private const int MAX_MSG_HANDLE = 256;
|
||||||
|
|
||||||
private readonly string m_Name;
|
private readonly string m_Name;
|
||||||
@@ -292,8 +292,9 @@ namespace TEngine.Runtime
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="actionId"></param>
|
/// <param name="actionId"></param>
|
||||||
/// <param name="msgDelegate"></param>
|
/// <param name="msgDelegate"></param>
|
||||||
|
/// <param name="checkRepeat"></param>
|
||||||
/// <exception cref="Exception"></exception>
|
/// <exception cref="Exception"></exception>
|
||||||
public void RegisterHandler(int actionId, CsMsgDelegate msgDelegate)
|
public void RegisterHandler(int actionId, CsMsgDelegate msgDelegate,bool checkRepeat = true)
|
||||||
{
|
{
|
||||||
if (msgDelegate == null)
|
if (msgDelegate == null)
|
||||||
{
|
{
|
||||||
@@ -315,7 +316,10 @@ namespace TEngine.Runtime
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.Warning("-------------repeat RegCmdHandle ActionCode:{0}-----------", (ActionCode)actionId);
|
if (checkRepeat)
|
||||||
|
{
|
||||||
|
Log.Warning("-------------repeat RegCmdHandle ActionCode:{0}-----------", (ActionCode)actionId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -434,13 +438,39 @@ namespace TEngine.Runtime
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 发送消息包并注册回调
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pack"></param>
|
||||||
|
/// <param name="resHandler"></param>
|
||||||
|
/// <param name="needShowWaitUI"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public bool SendCsMsg(MainPack pack, CsMsgDelegate resHandler = null)
|
||||||
|
{
|
||||||
|
var ret = Send(pack);
|
||||||
|
if (!ret)
|
||||||
|
{
|
||||||
|
TLogger.LogError("SendCSMsg Error");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (resHandler != null)
|
||||||
|
{
|
||||||
|
RegTimeOutHandle((uint)pack.actioncode, resHandler);
|
||||||
|
RegisterHandler((int)pack.actioncode, resHandler, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 向远程主机发送消息包。
|
/// 向远程主机发送消息包。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T">消息包类型。</typeparam>
|
/// <typeparam name="T">消息包类型。</typeparam>
|
||||||
/// <param name="packet">要发送的消息包。</param>
|
/// <param name="packet">要发送的消息包。</param>
|
||||||
public void Send<T>(T packet) where T : Packet
|
public bool Send<T>(T packet) where T : Packet
|
||||||
{
|
{
|
||||||
if (m_Socket == null)
|
if (m_Socket == null)
|
||||||
{
|
{
|
||||||
@@ -448,7 +478,7 @@ namespace TEngine.Runtime
|
|||||||
if (NetworkChannelError != null)
|
if (NetworkChannelError != null)
|
||||||
{
|
{
|
||||||
NetworkChannelError(this, NetworkErrorCode.SendError, SocketError.Success, errorMessage);
|
NetworkChannelError(this, NetworkErrorCode.SendError, SocketError.Success, errorMessage);
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Exception(errorMessage);
|
throw new Exception(errorMessage);
|
||||||
@@ -460,7 +490,7 @@ namespace TEngine.Runtime
|
|||||||
if (NetworkChannelError != null)
|
if (NetworkChannelError != null)
|
||||||
{
|
{
|
||||||
NetworkChannelError(this, NetworkErrorCode.SendError, SocketError.Success, errorMessage);
|
NetworkChannelError(this, NetworkErrorCode.SendError, SocketError.Success, errorMessage);
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Exception(errorMessage);
|
throw new Exception(errorMessage);
|
||||||
@@ -472,7 +502,7 @@ namespace TEngine.Runtime
|
|||||||
if (NetworkChannelError != null)
|
if (NetworkChannelError != null)
|
||||||
{
|
{
|
||||||
NetworkChannelError(this, NetworkErrorCode.SendError, SocketError.Success, errorMessage);
|
NetworkChannelError(this, NetworkErrorCode.SendError, SocketError.Success, errorMessage);
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Exception(errorMessage);
|
throw new Exception(errorMessage);
|
||||||
@@ -482,6 +512,8 @@ namespace TEngine.Runtime
|
|||||||
{
|
{
|
||||||
m_SendPacketPool.Enqueue(packet);
|
m_SendPacketPool.Enqueue(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@@ -41,7 +41,7 @@ message MainPack
|
|||||||
string extstr = 5;
|
string extstr = 5;
|
||||||
repeated RoomPack roompack = 6; //房间包,repeated加上为list
|
repeated RoomPack roompack = 6; //房间包,repeated加上为list
|
||||||
PlayerPack playerpack = 7;
|
PlayerPack playerpack = 7;
|
||||||
long HeatEchoTime = 8; //心跳包回包时间
|
float HeatEchoTime = 8; //心跳包回包时间
|
||||||
}
|
}
|
||||||
|
|
||||||
message LoginPack
|
message LoginPack
|
||||||
|
Reference in New Issue
Block a user