添加ConnectEventArgs

This commit is contained in:
Mili 2023-04-01 13:09:32 +08:00
parent 4d39342cbf
commit cb6cd2e60f
3 changed files with 45 additions and 4 deletions

View File

@ -16,15 +16,20 @@ namespace Milimoe.FunGame.Core.Interface
public interface IConnectEventHandler : IEventHandler
{
public new delegate EventResult BeforeEventHandler(object sender, ConnectEventArgs e);
public new delegate EventResult AfterEventHandler(object sender, ConnectEventArgs e);
public new delegate EventResult SucceedEventHandler(object sender, ConnectEventArgs e);
public new delegate EventResult FailedEventHandler(object sender, ConnectEventArgs e);
public event BeforeEventHandler? BeforeConnect;
public event AfterEventHandler? AfterConnect;
public event SucceedEventHandler? SucceedConnect;
public event FailedEventHandler? FailedConnect;
public EventResult OnBeforeConnectEvent(GeneralEventArgs e);
public EventResult OnAfterConnectEvent(GeneralEventArgs e);
public EventResult OnSucceedConnectEvent(GeneralEventArgs e);
public EventResult OnFailedConnectEvent(GeneralEventArgs e);
public EventResult OnBeforeConnectEvent(ConnectEventArgs e);
public EventResult OnAfterConnectEvent(ConnectEventArgs e);
public EventResult OnSucceedConnectEvent(ConnectEventArgs e);
public EventResult OnFailedConnectEvent(ConnectEventArgs e);
}
public interface IDisconnectEventHandler : IEventHandler

View File

@ -6,6 +6,16 @@ namespace Milimoe.FunGame.Core.Library.Common.Architecture
{
public class BaseModel : ISocketHandler, IDisposable
{
/// <summary>
/// 接收到的SocketObject实例
/// </summary>
protected virtual SocketObject Work { get; set; }
/// <summary>
/// 是否处于等待服务器响应的状态
/// </summary>
protected virtual bool Working { get; set; } = false;
/// <summary>
/// Socket
/// </summary>
@ -63,5 +73,14 @@ namespace Milimoe.FunGame.Core.Library.Common.Architecture
}
IsDisposed = true;
}
/// <summary>
/// 调用Socket.Send()前,请设置为等待状态
/// </summary>
protected void SetWorking()
{
Working = true;
Work = default;
}
}
}

View File

@ -0,0 +1,17 @@
namespace Milimoe.FunGame.Core.Library.Common.Event
{
public class ConnectEventArgs : GeneralEventArgs
{
public string ServerIP { get; set; } = "";
public string ServerPort { get; set; } = "";
public ConnectEventArgs(params object[]? objs)
{
if (objs != null)
{
if (objs.Length > 0) ServerIP = (string)objs[0];
if (objs.Length > 1) ServerPort = (string)objs[1];
}
}
}
}