Update
This commit is contained in:
ALEXTANG
2022-08-31 17:49:48 +08:00
parent 789341701a
commit f72821443c
3 changed files with 58 additions and 10 deletions

View File

@@ -112,7 +112,15 @@ namespace TEngine.Runtime
/// </summary>
/// <param name="actionId"></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>
/// 连接到远程主机。
@@ -139,6 +147,14 @@ namespace TEngine.Runtime
/// </summary>
/// <typeparam name="T">消息包类型。</typeparam>
/// <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);
}
}

View File

@@ -15,7 +15,7 @@ namespace TEngine.Runtime
/// </summary>
private abstract class NetworkChannelBase : INetworkChannel, IDisposable
{
private const float DefaultHeartBeatInterval = 30f;
private const float DefaultHeartBeatInterval = 30;
private const int MAX_MSG_HANDLE = 256;
private readonly string m_Name;
@@ -292,8 +292,9 @@ namespace TEngine.Runtime
/// </summary>
/// <param name="actionId"></param>
/// <param name="msgDelegate"></param>
/// <param name="checkRepeat"></param>
/// <exception cref="Exception"></exception>
public void RegisterHandler(int actionId, CsMsgDelegate msgDelegate)
public void RegisterHandler(int actionId, CsMsgDelegate msgDelegate,bool checkRepeat = true)
{
if (msgDelegate == null)
{
@@ -315,7 +316,10 @@ namespace TEngine.Runtime
}
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>
/// <typeparam name="T">消息包类型。</typeparam>
/// <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)
{
@@ -448,7 +478,7 @@ namespace TEngine.Runtime
if (NetworkChannelError != null)
{
NetworkChannelError(this, NetworkErrorCode.SendError, SocketError.Success, errorMessage);
return;
return false;
}
throw new Exception(errorMessage);
@@ -460,7 +490,7 @@ namespace TEngine.Runtime
if (NetworkChannelError != null)
{
NetworkChannelError(this, NetworkErrorCode.SendError, SocketError.Success, errorMessage);
return;
return false;
}
throw new Exception(errorMessage);
@@ -472,7 +502,7 @@ namespace TEngine.Runtime
if (NetworkChannelError != null)
{
NetworkChannelError(this, NetworkErrorCode.SendError, SocketError.Success, errorMessage);
return;
return false;
}
throw new Exception(errorMessage);
@@ -482,6 +512,8 @@ namespace TEngine.Runtime
{
m_SendPacketPool.Enqueue(packet);
}
return true;
}
/// <summary>

View File

@@ -41,7 +41,7 @@ message MainPack
string extstr = 5;
repeated RoomPack roompack = 6; //房间包repeated加上为list
PlayerPack playerpack = 7;
long HeatEchoTime = 8; //心跳包回包时间
float HeatEchoTime = 8; //心跳包回包时间
}
message LoginPack