From cb6cd2e60f43a8b5efe5de1c852b8d19fe7039a8 Mon Sep 17 00:00:00 2001 From: Mili Date: Sat, 1 Apr 2023 13:09:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0ConnectEventArgs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Interface/Event/EventHandlers.cs | 13 +++++++++---- Library/Common/Architecture/BaseModel.cs | 19 +++++++++++++++++++ Library/Common/Event/ConnectEventArgs.cs | 17 +++++++++++++++++ 3 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 Library/Common/Event/ConnectEventArgs.cs 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]; + } + } + } +}