mirror of
https://github.com/project-redbud/FunGame-Core.git
synced 2025-12-05 08:09:02 +00:00
删除了EnumHelper,更新Socket部分
This commit is contained in:
parent
00504d65da
commit
ec4e6dd780
@ -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 "";
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user