删除了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();
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);
HeartBeatFaileds = 0;

View File

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

View File

@ -208,7 +208,7 @@ namespace Milimoe.FunGame.Desktop.Model
{
return Socket.Receive();
}
return new object[2] { SocketSet.Unknown, Array.Empty<object>() };
return new object[2] { SocketMessageType.Unknown, Array.Empty<object>() };
}
private SocketMessageType Receiving()
@ -218,59 +218,40 @@ namespace Milimoe.FunGame.Desktop.Model
try
{
object[] ServerMessage = GetServerMessage();
string type = (string)ServerMessage[0];
SocketMessageType type = (SocketMessageType)ServerMessage[0];
object[] objs = (object[])ServerMessage[1];
string msg = "";
result = type;
switch (type)
{
case SocketSet.GetNotice:
result = SocketMessageType.GetNotice;
if (objs.Length > 0) msg = (string)objs[0];
Config.FunGame_Notice = msg;
case SocketMessageType.Connect:
SocketHandle_Connect(objs);
break;
case SocketSet.Connect:
result = SocketMessageType.Connect;
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);
case SocketMessageType.GetNotice:
SocketHandle_GetNotice(objs);
break;
case SocketSet.Login:
result = SocketMessageType.Login;
case SocketMessageType.Login:
break;
case SocketSet.CheckLogin:
result = SocketMessageType.CheckLogin;
if (objs.Length > 0) msg = (string)objs[0];
Main?.GetMessage(msg);
Main?.UpdateUI(MainControllerSet.SetUser, true, TimeType.TimeOnly, new object[] { Factory.New<User>(msg) });
case SocketMessageType.CheckLogin:
SocketHandle_CheckLogin(objs);
break;
case SocketSet.Logout:
case SocketMessageType.Logout:
break;
case SocketSet.Disconnect:
result = SocketMessageType.Disconnect;
if (objs.Length > 0) msg = (string)objs[0];
Main?.GetMessage(msg);
Main?.UpdateUI(MainControllerSet.Disconnected);
Close();
case SocketMessageType.Disconnect:
SocketHandle_Disconnect(objs);
break;
case SocketSet.HeartBeat:
result = SocketMessageType.HeartBeat;
if (Usercfg.LoginUser != null)
case SocketMessageType.HeartBeat:
if (Socket.Connected && Usercfg.LoginUser != null)
Main?.UpdateUI(MainControllerSet.SetGreenAndPing);
break;
case SocketSet.Unknown:
case SocketMessageType.Unknown:
default:
break;
}
@ -282,7 +263,46 @@ namespace Milimoe.FunGame.Desktop.Model
Main?.UpdateUI(MainControllerSet.Disconnected);
Close();
}
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();
}
}
}