diff --git a/Interface/Event/EventHandlers.cs b/Interface/Event/EventHandlers.cs
index dbdc0bf..8a0287c 100644
--- a/Interface/Event/EventHandlers.cs
+++ b/Interface/Event/EventHandlers.cs
@@ -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
diff --git a/Library/Common/Architecture/BaseModel.cs b/Library/Common/Architecture/BaseModel.cs
index be2811f..2868c5d 100644
--- a/Library/Common/Architecture/BaseModel.cs
+++ b/Library/Common/Architecture/BaseModel.cs
@@ -6,6 +6,16 @@ namespace Milimoe.FunGame.Core.Library.Common.Architecture
{
public class BaseModel : ISocketHandler, IDisposable
{
+ ///
+ /// 接收到的SocketObject实例
+ ///
+ protected virtual SocketObject Work { get; set; }
+
+ ///
+ /// 是否处于等待服务器响应的状态
+ ///
+ protected virtual bool Working { get; set; } = false;
+
///
/// Socket
///
@@ -63,5 +73,14 @@ namespace Milimoe.FunGame.Core.Library.Common.Architecture
}
IsDisposed = true;
}
+
+ ///
+ /// 调用Socket.Send()前,请设置为等待状态
+ ///
+ protected void SetWorking()
+ {
+ Working = true;
+ Work = default;
+ }
}
}
diff --git a/Library/Common/Event/ConnectEventArgs.cs b/Library/Common/Event/ConnectEventArgs.cs
new file mode 100644
index 0000000..65735b4
--- /dev/null
+++ b/Library/Common/Event/ConnectEventArgs.cs
@@ -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];
+ }
+ }
+ }
+}