删除了EnumHelper,更新Socket部分

This commit is contained in:
Mili 2022-11-23 00:31:32 +08:00
parent 00504d65da
commit ec4e6dd780
4 changed files with 59 additions and 99 deletions

View File

@ -1,60 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Core.Api.Utility
{
public class EnumHelper
{
/// <summary>
/// 获取实现类类名
/// </summary>
/// <param name="Interface">接口代号</param>
/// <returns></returns>
public static string GetImplementClassName(int Interface)
{
foreach (string str in Enum.GetNames(typeof(InterfaceType)))
{
InterfaceType temp = (InterfaceType)Enum.Parse(typeof(InterfaceType), Interface.ToString(), true);
if (temp.ToString() == str)
return temp + "Impl";
}
return "";
}
/// <summary>
/// 获取实现类的方法名
/// </summary>
/// <param name="Method">方法代号</param>
/// <returns></returns>
public static string GetImplementMethodName(int Method)
{
foreach (string str in Enum.GetNames(typeof(InterfaceMethod)))
{
InterfaceMethod temp = (InterfaceMethod)Enum.Parse(typeof(InterfaceMethod), Method.ToString(), true);
if (temp.ToString() == str)
return temp.ToString();
}
return "";
}
/// <summary>
/// 获取Socket枚举名
/// </summary>
/// <param name="SocketType">Socket枚举</param>
/// <returns></returns>
public static string GetSocketTypeName(int SocketType)
{
foreach (string str in Enum.GetNames(typeof(SocketMessageType)))
{
SocketMessageType temp = (SocketMessageType)Enum.Parse(typeof(SocketMessageType), SocketType.ToString(), true);
if (temp.ToString() == str)
return temp.ToString();
}
return "";
}
}
}

View File

@ -67,7 +67,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Network
{ {
object[] result = SocketManager.Receive(); object[] result = SocketManager.Receive();
if (result.Length != 2) throw new System.Exception("收到错误的返回信息。"); if (result.Length != 2) throw new System.Exception("收到错误的返回信息。");
if ((string)result[0] == SocketSet.HeartBeat) if ((SocketMessageType)result[0] == SocketMessageType.HeartBeat)
{ {
if (WaitHeartBeatReply != null && !WaitHeartBeatReply.IsCompleted) WaitHeartBeatReply.Wait(1); if (WaitHeartBeatReply != null && !WaitHeartBeatReply.IsCompleted) WaitHeartBeatReply.Wait(1);
HeartBeatFaileds = 0; HeartBeatFaileds = 0;

View File

@ -168,7 +168,7 @@ namespace Milimoe.FunGame.Core.Service
Library.Common.Network.JsonObject? json = Library.Common.Network.JsonObject.GetObject(msg); Library.Common.Network.JsonObject? json = Library.Common.Network.JsonObject.GetObject(msg);
if (json != null) if (json != null)
{ {
result[0] = GetTypeString(json.MessageType); result[0] = json.MessageType;
result[1] = json.Parameters; result[1] = json.Parameters;
} }
return result; return result;
@ -196,7 +196,7 @@ namespace Milimoe.FunGame.Core.Service
Library.Common.Network.JsonObject? json = Library.Common.Network.JsonObject.GetObject(msg); Library.Common.Network.JsonObject? json = Library.Common.Network.JsonObject.GetObject(msg);
if (json != null) if (json != null)
{ {
result[0] = GetTypeString(json.MessageType); result[0] = json.MessageType;
result[1] = json.Parameters; result[1] = json.Parameters;
} }
return result; return result;

View File

@ -208,7 +208,7 @@ namespace Milimoe.FunGame.Desktop.Model
{ {
return Socket.Receive(); return Socket.Receive();
} }
return new object[2] { SocketSet.Unknown, Array.Empty<object>() }; return new object[2] { SocketMessageType.Unknown, Array.Empty<object>() };
} }
private SocketMessageType Receiving() private SocketMessageType Receiving()
@ -218,59 +218,40 @@ namespace Milimoe.FunGame.Desktop.Model
try try
{ {
object[] ServerMessage = GetServerMessage(); object[] ServerMessage = GetServerMessage();
string type = (string)ServerMessage[0]; SocketMessageType type = (SocketMessageType)ServerMessage[0];
object[] objs = (object[])ServerMessage[1]; object[] objs = (object[])ServerMessage[1];
string msg = "";
result = type;
switch (type) switch (type)
{ {
case SocketSet.GetNotice: case SocketMessageType.Connect:
result = SocketMessageType.GetNotice; SocketHandle_Connect(objs);
if (objs.Length > 0) msg = (string)objs[0];
Config.FunGame_Notice = msg;
break; break;
case SocketSet.Connect: case SocketMessageType.GetNotice:
result = SocketMessageType.Connect; SocketHandle_GetNotice(objs);
if (objs.Length > 0) msg = (string)objs[0];
string[] strings = msg.Split(';');
string ServerName = strings[0];
string ServerNotice = strings[1];
Config.FunGame_ServerName = ServerName;
Config.FunGame_Notice = ServerNotice;
Main?.GetMessage($"已连接服务器:{ServerName}。\n\n********** 服务器公告 **********\n\n{ServerNotice}\n\n");
// 设置等待登录的黄灯
Main?.UpdateUI(MainControllerSet.WaitLoginAndSetYellow);
break; break;
case SocketSet.Login: case SocketMessageType.Login:
result = SocketMessageType.Login;
break; break;
case SocketSet.CheckLogin: case SocketMessageType.CheckLogin:
result = SocketMessageType.CheckLogin; SocketHandle_CheckLogin(objs);
if (objs.Length > 0) msg = (string)objs[0];
Main?.GetMessage(msg);
Main?.UpdateUI(MainControllerSet.SetUser, true, TimeType.TimeOnly, new object[] { Factory.New<User>(msg) });
break; break;
case SocketSet.Logout: case SocketMessageType.Logout:
break; break;
case SocketSet.Disconnect: case SocketMessageType.Disconnect:
result = SocketMessageType.Disconnect; SocketHandle_Disconnect(objs);
if (objs.Length > 0) msg = (string)objs[0];
Main?.GetMessage(msg);
Main?.UpdateUI(MainControllerSet.Disconnected);
Close();
break; break;
case SocketSet.HeartBeat: case SocketMessageType.HeartBeat:
result = SocketMessageType.HeartBeat; if (Socket.Connected && Usercfg.LoginUser != null)
if (Usercfg.LoginUser != null)
Main?.UpdateUI(MainControllerSet.SetGreenAndPing); Main?.UpdateUI(MainControllerSet.SetGreenAndPing);
break; break;
case SocketSet.Unknown: case SocketMessageType.Unknown:
default: default:
break; break;
} }
@ -282,7 +263,46 @@ namespace Milimoe.FunGame.Desktop.Model
Main?.UpdateUI(MainControllerSet.Disconnected); Main?.UpdateUI(MainControllerSet.Disconnected);
Close(); Close();
} }
return result; return result;
} }
private void SocketHandle_Connect(object[] objs)
{
string msg = "";
if (objs.Length > 0) msg = (string)objs[0];
string[] strings = msg.Split(';');
string ServerName = strings[0];
string ServerNotice = strings[1];
Config.FunGame_ServerName = ServerName;
Config.FunGame_Notice = ServerNotice;
Main?.GetMessage($"已连接服务器:{ServerName}。\n\n********** 服务器公告 **********\n\n{ServerNotice}\n\n");
// 设置等待登录的黄灯
Main?.UpdateUI(MainControllerSet.WaitLoginAndSetYellow);
}
private void SocketHandle_GetNotice(object[] objs)
{
if (objs.Length > 0) Config.FunGame_Notice = (string)objs[0];
}
private void SocketHandle_CheckLogin(object[] objs)
{
string msg = "";
// 返回的objs是该Login的User对象的各个属性
if (objs.Length > 0) msg = (string)objs[0];
Main?.GetMessage(msg);
Main?.UpdateUI(MainControllerSet.SetUser, true, TimeType.TimeOnly, new object[] { Factory.New<User>(msg) });
}
private void SocketHandle_Disconnect(object[] objs)
{
string msg = "";
if (objs.Length > 0) msg = (string)objs[0];
Main?.GetMessage(msg);
Main?.UpdateUI(MainControllerSet.Disconnected);
Close();
}
} }
} }