明显区分Socket和DataRequest (#50)

* 明显区分Socket和DataRequest

* 删除了SocketHandler_Connect方法
This commit is contained in:
milimoe 2023-08-31 19:40:06 +08:00 committed by GitHub
parent a814997a4a
commit b9d9932ac2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 53 additions and 85 deletions

View File

@ -204,14 +204,25 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
{ {
return type switch return type switch
{ {
DataRequestType.RunTime_Connect => DataRequestSet.RunTime_Connect,
DataRequestType.RunTime_Reg => DataRequestSet.RunTime_Reg,
DataRequestType.RunTime_CheckReg => DataRequestSet.RunTime_CheckReg,
DataRequestType.RunTime_Login => DataRequestSet.RunTime_Login,
DataRequestType.RunTime_CheckLogin => DataRequestSet.RunTime_CheckLogin,
DataRequestType.RunTime_Logout => DataRequestSet.RunTime_Logout,
DataRequestType.RunTime_Disconnect => DataRequestSet.RunTime_Disconnect,
DataRequestType.Main_GetNotice => DataRequestSet.Main_GetNotice, DataRequestType.Main_GetNotice => DataRequestSet.Main_GetNotice,
DataRequestType.Main_CreateRoom => DataRequestSet.Main_CreateRoom, DataRequestType.Main_CreateRoom => DataRequestSet.Main_CreateRoom,
DataRequestType.Main_UpdateRoom => DataRequestSet.Main_UpdateRoom, DataRequestType.Main_UpdateRoom => DataRequestSet.Main_UpdateRoom,
DataRequestType.Main_IntoRoom => DataRequestSet.Main_IntoRoom,
DataRequestType.Main_QuitRoom => DataRequestSet.Main_QuitRoom,
DataRequestType.Main_MatchRoom => DataRequestSet.Main_MatchRoom,
DataRequestType.Reg_GetRegVerifyCode => DataRequestSet.Reg_GetRegVerifyCode, DataRequestType.Reg_GetRegVerifyCode => DataRequestSet.Reg_GetRegVerifyCode,
DataRequestType.Login_GetFindPasswordVerifyCode => DataRequestSet.Login_GetFindPasswordVerifyCode, DataRequestType.Login_GetFindPasswordVerifyCode => DataRequestSet.Login_GetFindPasswordVerifyCode,
DataRequestType.Login_UpdatePassword => DataRequestSet.Login_UpdatePassword, DataRequestType.Login_UpdatePassword => DataRequestSet.Login_UpdatePassword,
DataRequestType.Room_GetRoomSettings => DataRequestSet.Room_GetRoomSettings, DataRequestType.Room_GetRoomSettings => DataRequestSet.Room_GetRoomSettings,
DataRequestType.Room_GetRoomPlayerCount => DataRequestSet.Room_GetRoomPlayerCount, DataRequestType.Room_GetRoomPlayerCount => DataRequestSet.Room_GetRoomPlayerCount,
DataRequestType.Room_UpdateRoomMaster => DataRequestSet.Room_UpdateRoomMaster,
_ => DataRequestSet.UnKnown _ => DataRequestSet.UnKnown
}; };
} }

View File

@ -47,7 +47,7 @@ namespace Milimoe.FunGame.Core.Controller
try try
{ {
result = _Socket?.Send(SocketMessageType.RunTime_Disconnect, "") == SocketResult.Success; result = _Socket?.Send(SocketMessageType.Disconnect, "") == SocketResult.Success;
} }
catch (Exception e) catch (Exception e)
{ {
@ -217,15 +217,11 @@ namespace Milimoe.FunGame.Core.Controller
result = type; result = type;
switch (type) switch (type)
{ {
case SocketMessageType.RunTime_Connect: case SocketMessageType.Disconnect:
if (!SocketHandler_Connect(ServerMessage)) return SocketMessageType.Unknown;
break;
case SocketMessageType.RunTime_Disconnect:
SocketHandler_Disconnect(ServerMessage); SocketHandler_Disconnect(ServerMessage);
break; break;
case SocketMessageType.RunTime_HeartBeat: case SocketMessageType.HeartBeat:
if (_Socket != null && _Socket.Connected) if (_Socket != null && _Socket.Connected)
{ {
SocketHandler_HeartBeat(ServerMessage); SocketHandler_HeartBeat(ServerMessage);
@ -247,20 +243,13 @@ namespace Milimoe.FunGame.Core.Controller
} }
/// <summary> /// <summary>
/// 连接服务器的处理方法 /// 客户端接收到服务器断开连接的通知后的处理方法
/// </summary>
/// <param name="ServerMessage"></param>
/// <returns></returns>
protected abstract bool SocketHandler_Connect(SocketObject ServerMessage);
/// <summary>
/// 与服务器断开连接的处理方法
/// </summary> /// </summary>
/// <param name="ServerMessage"></param> /// <param name="ServerMessage"></param>
protected abstract void SocketHandler_Disconnect(SocketObject ServerMessage); protected abstract void SocketHandler_Disconnect(SocketObject ServerMessage);
/// <summary> /// <summary>
/// 心跳检测处理方法 /// 客户端接收到服务器心跳后的处理方法
/// </summary> /// </summary>
/// <param name="ServerMessage"></param> /// <param name="ServerMessage"></param>
protected abstract void SocketHandler_HeartBeat(SocketObject ServerMessage); protected abstract void SocketHandler_HeartBeat(SocketObject ServerMessage);

View File

@ -59,7 +59,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Network
try try
{ {
SocketObject result = SocketManager.Receive(); SocketObject result = SocketManager.Receive();
if (result.SocketType == SocketMessageType.RunTime_HeartBeat) if (result.SocketType == SocketMessageType.HeartBeat)
{ {
if (WaitHeartBeatReply != null && !WaitHeartBeatReply.IsCompleted) WaitHeartBeatReply.Wait(1); if (WaitHeartBeatReply != null && !WaitHeartBeatReply.IsCompleted) WaitHeartBeatReply.Wait(1);
_HeartBeatFaileds = 0; _HeartBeatFaileds = 0;
@ -79,7 +79,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Network
SocketObject[] result = SocketManager.ReceiveArray(); SocketObject[] result = SocketManager.ReceiveArray();
foreach (SocketObject obj in result) foreach (SocketObject obj in result)
{ {
if (obj.SocketType == SocketMessageType.RunTime_HeartBeat) if (obj.SocketType == SocketMessageType.HeartBeat)
{ {
if (WaitHeartBeatReply != null && !WaitHeartBeatReply.IsCompleted) WaitHeartBeatReply.Wait(1); if (WaitHeartBeatReply != null && !WaitHeartBeatReply.IsCompleted) WaitHeartBeatReply.Wait(1);
_HeartBeatFaileds = 0; _HeartBeatFaileds = 0;
@ -155,7 +155,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Network
{ {
if (!SendingHeartBeat) _SendingHeartBeat= true; if (!SendingHeartBeat) _SendingHeartBeat= true;
// 发送心跳包 // 发送心跳包
if (Send(SocketMessageType.RunTime_HeartBeat) == SocketResult.Success) if (Send(SocketMessageType.HeartBeat) == SocketResult.Success)
{ {
WaitHeartBeatReply = Task.Run(() => WaitHeartBeatReply = Task.Run(() =>
{ {

View File

@ -34,33 +34,9 @@ namespace Milimoe.FunGame.Core.Library.Constant
public const string Socket = "Socket"; public const string Socket = "Socket";
public const string Unknown = "Unknown"; public const string Unknown = "Unknown";
public const string DataRequest = "DataRequest"; public const string DataRequest = "DataRequest";
/** public const string Disconnect = "Disconnect";
* RunTime public const string HeartBeat = "HeartBeat";
*/ public const string ForceLogout = "ForceLogout";
public const string RunTime_Connect = "RunTime::Connect";
public const string RunTime_Reg = "RunTime::Reg";
public const string RunTime_CheckReg = "RunTime::CheckReg";
public const string RunTime_Login = "RunTime::Login";
public const string RunTime_CheckLogin = "RunTime::CheckLogin";
public const string RunTime_Logout = "RunTime::Logout";
public const string RunTime_Disconnect = "RunTime::Disconnect";
public const string RunTime_HeartBeat = "RunTime::HeartBeat";
/**
* Main
*/
public const string Main_GetNotice = "Main::GetNotice";
public const string Main_IntoRoom = "Main::IntoRoom";
public const string Main_QuitRoom = "Main::QuitRoom";
public const string Main_Chat = "Main::Chat";
public const string Main_CreateRoom = "Main::CreateRoom";
public const string Main_UpdateRoom = "Main::UpdateRoom";
public const string Main_MatchRoom = "Main::MatchRoom";
/**
* Room
*/
public const string Room_ChangeRoomSetting = "Room::ChangeRoomSetting";
public const string Room_UpdateRoomMaster = "Room::UpdateRoomMaster";
public const string Room_GetRoomPlayerCount = "Room::GetRoomPlayerCount";
} }
/// <summary> /// <summary>
@ -71,12 +47,25 @@ namespace Milimoe.FunGame.Core.Library.Constant
public class DataRequestSet public class DataRequestSet
{ {
public const string UnKnown = "UnKnown"; public const string UnKnown = "UnKnown";
/**
* RunTime
*/
public const string RunTime_Connect = "RunTime::Connect";
public const string RunTime_Reg = "RunTime::Reg";
public const string RunTime_CheckReg = "RunTime::CheckReg";
public const string RunTime_Login = "RunTime::Login";
public const string RunTime_CheckLogin = "RunTime::CheckLogin";
public const string RunTime_Logout = "RunTime::Logout";
public const string RunTime_Disconnect = "RunTime::Disconnect";
/** /**
* Main * Main
*/ */
public const string Main_GetNotice = "Main::GetNotice"; public const string Main_GetNotice = "Main::GetNotice";
public const string Main_IntoRoom = "Main::IntoRoom";
public const string Main_QuitRoom = "Main::QuitRoom";
public const string Main_CreateRoom = "Main::CreateRoom"; public const string Main_CreateRoom = "Main::CreateRoom";
public const string Main_UpdateRoom = "Main::UpdateRoom"; public const string Main_UpdateRoom = "Main::UpdateRoom";
public const string Main_MatchRoom = "Main::MatchRoom";
/** /**
* Register * Register
*/ */
@ -91,6 +80,7 @@ namespace Milimoe.FunGame.Core.Library.Constant
*/ */
public const string Room_GetRoomSettings = "Room::GetRoomSettings"; public const string Room_GetRoomSettings = "Room::GetRoomSettings";
public const string Room_GetRoomPlayerCount = "Room::GetRoomPlayerCount"; public const string Room_GetRoomPlayerCount = "Room::GetRoomPlayerCount";
public const string Room_UpdateRoomMaster = "Room::UpdateRoomMaster";
} }
public class ReflectionSet public class ReflectionSet

View File

@ -59,25 +59,9 @@ namespace Milimoe.FunGame.Core.Library.Constant
{ {
Unknown, Unknown,
DataRequest, DataRequest,
RunTime_Connect, Disconnect,
RunTime_Reg, HeartBeat,
RunTime_CheckReg, ForceLogout
RunTime_Login,
RunTime_CheckLogin,
RunTime_Logout,
RunTime_ForceLogout,
RunTime_Disconnect,
RunTime_HeartBeat,
Main_GetNotice,
Main_IntoRoom,
Main_QuitRoom,
Main_Chat,
Main_CreateRoom,
Main_UpdateRoom,
Main_MatchRoom,
Room_ChangeRoomSetting,
Room_UpdateRoomMaster,
Room_GetRoomPlayerCount
} }
/// <summary> /// <summary>
@ -86,16 +70,25 @@ namespace Milimoe.FunGame.Core.Library.Constant
public enum DataRequestType public enum DataRequestType
{ {
UnKnown, UnKnown,
RunTime_Connect,
RunTime_Reg,
RunTime_CheckReg,
RunTime_Login,
RunTime_CheckLogin,
RunTime_Logout,
RunTime_Disconnect,
Main_GetNotice, Main_GetNotice,
Main_CreateRoom, Main_CreateRoom,
Main_UpdateRoom, Main_UpdateRoom,
Main_IntoRoom, Main_IntoRoom,
Main_QuitRoom, Main_QuitRoom,
Main_MatchRoom,
Reg_GetRegVerifyCode, Reg_GetRegVerifyCode,
Login_GetFindPasswordVerifyCode, Login_GetFindPasswordVerifyCode,
Login_UpdatePassword, Login_UpdatePassword,
Room_GetRoomSettings, Room_GetRoomSettings,
Room_GetRoomPlayerCount Room_GetRoomPlayerCount,
Room_UpdateRoomMaster
} }
public enum SocketRuntimeType public enum SocketRuntimeType

View File

@ -257,24 +257,9 @@ namespace Milimoe.FunGame.Core.Service
return type switch return type switch
{ {
SocketMessageType.DataRequest => SocketSet.DataRequest, SocketMessageType.DataRequest => SocketSet.DataRequest,
SocketMessageType.RunTime_Connect => SocketSet.RunTime_Connect, SocketMessageType.Disconnect => SocketSet.Disconnect,
SocketMessageType.RunTime_Reg => SocketSet.RunTime_Reg, SocketMessageType.HeartBeat => SocketSet.HeartBeat,
SocketMessageType.RunTime_CheckReg => SocketSet.RunTime_CheckReg, SocketMessageType.ForceLogout => SocketSet.ForceLogout,
SocketMessageType.RunTime_Login => SocketSet.RunTime_Login,
SocketMessageType.RunTime_CheckLogin => SocketSet.RunTime_CheckLogin,
SocketMessageType.RunTime_Logout => SocketSet.RunTime_Logout,
SocketMessageType.RunTime_Disconnect => SocketSet.RunTime_Disconnect,
SocketMessageType.RunTime_HeartBeat => SocketSet.RunTime_HeartBeat,
SocketMessageType.Main_GetNotice => SocketSet.Main_GetNotice,
SocketMessageType.Main_IntoRoom => SocketSet.Main_IntoRoom,
SocketMessageType.Main_QuitRoom => SocketSet.Main_QuitRoom,
SocketMessageType.Main_Chat => SocketSet.Main_Chat,
SocketMessageType.Main_CreateRoom => SocketSet.Main_CreateRoom,
SocketMessageType.Main_UpdateRoom => SocketSet.Main_UpdateRoom,
SocketMessageType.Main_MatchRoom => SocketSet.Main_MatchRoom,
SocketMessageType.Room_ChangeRoomSetting => SocketSet.Room_ChangeRoomSetting,
SocketMessageType.Room_UpdateRoomMaster => SocketSet.Room_UpdateRoomMaster,
SocketMessageType.Room_GetRoomPlayerCount => SocketSet.Room_GetRoomPlayerCount,
_ => SocketSet.Unknown, _ => SocketSet.Unknown,
}; };
} }