From 63d3817dde515b07f83193e44e770adc0a79fdb0 Mon Sep 17 00:00:00 2001 From: ALEXTANG <574809918@qq.com> Date: Wed, 31 Aug 2022 10:28:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=88=E7=A7=BB=E9=99=A4=E7=BD=91=E7=BB=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 先移除网络 --- .../Editor/Inspector/NetworkInspector.cs | 134 ++-- ...uggerComponent.NetworkInformationWindow.cs | 61 -- ...Component.NetworkInformationWindow.cs.meta | 3 - .../Base/Debugger/Imp/DebuggerComponent.cs | 4 +- .../TEngine/Scripts/Runtime/Core/NetWork.meta | 8 - .../Runtime/Core/NetWork/AddressFamily.cs | 23 - .../Core/NetWork/AddressFamily.cs.meta | 3 - .../Scripts/Runtime/Core/NetWork/Event.meta | 8 - .../Runtime/Core/NetWork/Event/EventArgs.meta | 8 - .../Event/EventArgs/NetworkClosedEvent.cs | 120 ---- .../EventArgs/NetworkClosedEvent.cs.meta | 3 - .../EventArgs/NetworkConnectedEventArgs.cs | 142 ---- .../NetworkConnectedEventArgs.cs.meta | 3 - .../EventArgs/NetworkCustomErrorEvent.cs | 145 ---- .../EventArgs/NetworkCustomErrorEvent.cs.meta | 3 - .../Event/EventArgs/NetworkErrorEvent.cs | 195 ------ .../Event/EventArgs/NetworkErrorEvent.cs.meta | 3 - .../EventArgs/NetworkMissHeartBeatEvent.cs | 145 ---- .../NetworkMissHeartBeatEvent.cs.meta | 3 - .../Core/NetWork/Event/EventManager.cs | 130 ---- .../Core/NetWork/Event/EventManager.cs.meta | 3 - .../Runtime/Core/NetWork/Event/EventPool.meta | 8 - .../NetWork/Event/EventPool/BaseEventArgs.cs | 31 - .../Event/EventPool/BaseEventArgs.cs.meta | 11 - .../Event/EventPool/EventPool.Event.cs | 50 -- .../Event/EventPool/EventPool.Event.cs.meta | 11 - .../Core/NetWork/Event/EventPool/EventPool.cs | 278 -------- .../NetWork/Event/EventPool/EventPool.cs.meta | 11 - .../NetWork/Event/EventPool/EventPoolMode.cs | 31 - .../Event/EventPool/EventPoolMode.cs.meta | 11 - .../Core/NetWork/Event/GameEventArgs.cs | 9 - .../Core/NetWork/Event/GameEventArgs.cs.meta | 3 - .../Core/NetWork/Event/IEventManager.cs | 87 --- .../Core/NetWork/Event/IEventManager.cs.meta | 11 - .../Runtime/Core/NetWork/Event/NetEvent.cs | 129 ---- .../Core/NetWork/Event/NetEvent.cs.meta | 3 - .../Scripts/Runtime/Core/NetWork/Helper.meta | 8 - .../Core/NetWork/Helper/CSPacketBase.cs | 7 - .../Core/NetWork/Helper/CSPacketBase.cs.meta | 11 - .../Core/NetWork/Helper/CSPacketHeader.cs | 11 - .../NetWork/Helper/CSPacketHeader.cs.meta | 11 - .../NetWork/Helper/NetworkChannelHelper.cs | 256 ------- .../Helper/NetworkChannelHelper.cs.meta | 11 - .../Runtime/Core/NetWork/Helper/Packet.meta | 8 - .../Core/NetWork/Helper/Packet/CSHeartBeat.cs | 19 - .../NetWork/Helper/Packet/CSHeartBeat.cs.meta | 11 - .../Runtime/Core/NetWork/Helper/PacketBase.cs | 19 - .../Core/NetWork/Helper/PacketBase.cs.meta | 11 - .../Core/NetWork/Helper/PacketHandler.meta | 3 - .../PacketHandler/SCHeartBeatHandler.cs | 27 - .../PacketHandler/SCHeartBeatHandler.cs.meta | 3 - .../Core/NetWork/Helper/PacketHandlerBase.cs | 15 - .../NetWork/Helper/PacketHandlerBase.cs.meta | 11 - .../Core/NetWork/Helper/PacketHeaderBase.cs | 31 - .../NetWork/Helper/PacketHeaderBase.cs.meta | 11 - .../Runtime/Core/NetWork/Helper/ProtoUtils.cs | 49 -- .../Core/NetWork/Helper/ProtoUtils.cs.meta | 11 - .../Runtime/Core/NetWork/INetworkChannel.cs | 157 ----- .../Core/NetWork/INetworkChannel.cs.meta | 3 - .../Core/NetWork/INetworkChannelHelper.cs | 66 -- .../NetWork/INetworkChannelHelper.cs.meta | 3 - .../Runtime/Core/NetWork/INetworkManager.cs | 86 --- .../Core/NetWork/INetworkManager.cs.meta | 3 - .../Runtime/Core/NetWork/IPacketHandler.cs | 23 - .../Core/NetWork/IPacketHandler.cs.meta | 3 - .../Runtime/Core/NetWork/IPacketHeader.cs | 16 - .../Core/NetWork/IPacketHeader.cs.meta | 3 - .../Scripts/Runtime/Core/NetWork/Network.cs | 163 ----- .../Runtime/Core/NetWork/Network.cs.meta | 11 - .../Runtime/Core/NetWork/NetworkErrorCode.cs | 53 -- .../Core/NetWork/NetworkErrorCode.cs.meta | 3 - .../NetWork/NetworkManager.ConnectState.cs | 35 - .../NetworkManager.ConnectState.cs.meta | 11 - .../NetWork/NetworkManager.HeartBeatState.cs | 51 -- .../NetworkManager.HeartBeatState.cs.meta | 11 - .../NetworkManager.NetworkChannelBase.cs | 629 ------------------ .../NetworkManager.NetworkChannelBase.cs.meta | 11 - .../NetWork/NetworkManager.ReceiveState.cs | 91 --- .../NetworkManager.ReceiveState.cs.meta | 11 - .../Core/NetWork/NetworkManager.SendState.cs | 60 -- .../NetWork/NetworkManager.SendState.cs.meta | 11 - .../Runtime/Core/NetWork/NetworkManager.cs | 350 ---------- .../Core/NetWork/NetworkManager.cs.meta | 3 - .../Scripts/Runtime/Core/NetWork/Packet.cs | 10 - .../Runtime/Core/NetWork/Packet.cs.meta | 3 - .../Runtime/Core/NetWork/ServiceType.cs | 28 - .../Runtime/Core/NetWork/ServiceType.cs.meta | 11 - .../Scripts/Runtime/Core/NetWork/Tcp.meta | 8 - .../Tcp/NetworkManager.TcpNetworkChannel.cs | 283 -------- .../NetworkManager.TcpNetworkChannel.cs.meta | 11 - ...anager.TcpWithSyncReceiveNetworkChannel.cs | 259 -------- ...r.TcpWithSyncReceiveNetworkChannel.cs.meta | 11 - .../Scripts/Runtime/Core/NetWork/Udp.meta | 8 - .../Core/NetWork/Udp/UdpNetworkChannel.cs | 276 -------- .../NetWork/Udp/UdpNetworkChannel.cs.meta | 11 - 95 files changed, 69 insertions(+), 5092 deletions(-) delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/AddressFamily.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/AddressFamily.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkClosedEvent.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkClosedEvent.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkConnectedEventArgs.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkConnectedEventArgs.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkCustomErrorEvent.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkCustomErrorEvent.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkErrorEvent.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkErrorEvent.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkMissHeartBeatEvent.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkMissHeartBeatEvent.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventManager.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventManager.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/BaseEventArgs.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/BaseEventArgs.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.Event.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.Event.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPoolMode.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPoolMode.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/GameEventArgs.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/GameEventArgs.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/IEventManager.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/IEventManager.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/NetEvent.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/NetEvent.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketBase.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketBase.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/NetworkChannelHelper.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/NetworkChannelHelper.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/Packet.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/Packet/CSHeartBeat.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/Packet/CSHeartBeat.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketBase.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketBase.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandler.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandler/SCHeartBeatHandler.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandler/SCHeartBeatHandler.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandlerBase.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandlerBase.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/ProtoUtils.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/ProtoUtils.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannel.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannel.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannelHelper.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannelHelper.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkManager.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkManager.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHandler.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHandler.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHeader.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHeader.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Network.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Network.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkErrorCode.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkErrorCode.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ConnectState.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ConnectState.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.HeartBeatState.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.HeartBeatState.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.NetworkChannelBase.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.NetworkChannelBase.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ReceiveState.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ReceiveState.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.SendState.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.SendState.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Packet.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Packet.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/ServiceType.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/ServiceType.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpNetworkChannel.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpNetworkChannel.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpWithSyncReceiveNetworkChannel.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpWithSyncReceiveNetworkChannel.cs.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp.meta delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp/UdpNetworkChannel.cs delete mode 100644 Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp/UdpNetworkChannel.cs.meta diff --git a/Assets/TEngine/Scripts/Editor/Inspector/NetworkInspector.cs b/Assets/TEngine/Scripts/Editor/Inspector/NetworkInspector.cs index 2c53c0ca..ccbc3f2d 100644 --- a/Assets/TEngine/Scripts/Editor/Inspector/NetworkInspector.cs +++ b/Assets/TEngine/Scripts/Editor/Inspector/NetworkInspector.cs @@ -1,67 +1,67 @@ -using UnityEditor; -using UnityEngine; -using TEngine.Runtime; - -namespace TEngine.Editor -{ - [CustomEditor(typeof(TEngine.Runtime.Network))] - internal sealed class NetworkComponentInspector : TEngineInspector - { - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - if (!EditorApplication.isPlaying) - { - EditorGUILayout.HelpBox("Available during runtime only.", MessageType.Info); - return; - } - - TEngine.Runtime.Network t = (TEngine.Runtime.Network)target; - - if (IsPrefabInHierarchy(t.gameObject)) - { - EditorGUILayout.LabelField("Network Channel Count", t.NetworkChannelCount.ToString()); - - INetworkChannel[] networkChannels = t.GetAllNetworkChannels(); - foreach (INetworkChannel networkChannel in networkChannels) - { - DrawNetworkChannel(networkChannel); - } - } - - Repaint(); - } - - private void OnEnable() - { - } - - private void DrawNetworkChannel(INetworkChannel networkChannel) - { - EditorGUILayout.BeginVertical("box"); - { - EditorGUILayout.LabelField(networkChannel.Name, networkChannel.Connected ? "Connected" : "Disconnected"); - EditorGUILayout.LabelField("Service Type", networkChannel.ServiceType.ToString()); - EditorGUILayout.LabelField("Address Family", networkChannel.AddressFamily.ToString()); - EditorGUILayout.LabelField("Local Address", networkChannel.Connected ? networkChannel.Socket.LocalEndPoint.ToString() : "Unavailable"); - EditorGUILayout.LabelField("Remote Address", networkChannel.Connected ? networkChannel.Socket.RemoteEndPoint.ToString() : "Unavailable"); - EditorGUILayout.LabelField("Send Packet", Utility.Text.Format("{0} / {1}", networkChannel.SendPacketCount.ToString(), networkChannel.SentPacketCount.ToString())); - EditorGUILayout.LabelField("Receive Packet", Utility.Text.Format("{0} / {1}", networkChannel.ReceivePacketCount.ToString(), networkChannel.ReceivedPacketCount.ToString())); - EditorGUILayout.LabelField("Miss Heart Beat Count", networkChannel.MissHeartBeatCount.ToString()); - EditorGUILayout.LabelField("Heart Beat", Utility.Text.Format("{0} / {1}", networkChannel.HeartBeatElapseSeconds.ToString("F2"), networkChannel.HeartBeatInterval.ToString("F2"))); - EditorGUI.BeginDisabledGroup(!networkChannel.Connected); - { - if (GUILayout.Button("Disconnect")) - { - networkChannel.Close(); - } - } - EditorGUI.EndDisabledGroup(); - } - EditorGUILayout.EndVertical(); - - EditorGUILayout.Separator(); - } - } -} +// using UnityEditor; +// using UnityEngine; +// using TEngine.Runtime; +// +// namespace TEngine.Editor +// { +// [CustomEditor(typeof(TEngine.Runtime.Network))] +// internal sealed class NetworkComponentInspector : TEngineInspector +// { +// public override void OnInspectorGUI() +// { +// base.OnInspectorGUI(); +// +// if (!EditorApplication.isPlaying) +// { +// EditorGUILayout.HelpBox("Available during runtime only.", MessageType.Info); +// return; +// } +// +// TEngine.Runtime.Network t = (TEngine.Runtime.Network)target; +// +// if (IsPrefabInHierarchy(t.gameObject)) +// { +// EditorGUILayout.LabelField("Network Channel Count", t.NetworkChannelCount.ToString()); +// +// INetworkChannel[] networkChannels = t.GetAllNetworkChannels(); +// foreach (INetworkChannel networkChannel in networkChannels) +// { +// DrawNetworkChannel(networkChannel); +// } +// } +// +// Repaint(); +// } +// +// private void OnEnable() +// { +// } +// +// private void DrawNetworkChannel(INetworkChannel networkChannel) +// { +// EditorGUILayout.BeginVertical("box"); +// { +// EditorGUILayout.LabelField(networkChannel.Name, networkChannel.Connected ? "Connected" : "Disconnected"); +// EditorGUILayout.LabelField("Service Type", networkChannel.ServiceType.ToString()); +// EditorGUILayout.LabelField("Address Family", networkChannel.AddressFamily.ToString()); +// EditorGUILayout.LabelField("Local Address", networkChannel.Connected ? networkChannel.Socket.LocalEndPoint.ToString() : "Unavailable"); +// EditorGUILayout.LabelField("Remote Address", networkChannel.Connected ? networkChannel.Socket.RemoteEndPoint.ToString() : "Unavailable"); +// EditorGUILayout.LabelField("Send Packet", Utility.Text.Format("{0} / {1}", networkChannel.SendPacketCount.ToString(), networkChannel.SentPacketCount.ToString())); +// EditorGUILayout.LabelField("Receive Packet", Utility.Text.Format("{0} / {1}", networkChannel.ReceivePacketCount.ToString(), networkChannel.ReceivedPacketCount.ToString())); +// EditorGUILayout.LabelField("Miss Heart Beat Count", networkChannel.MissHeartBeatCount.ToString()); +// EditorGUILayout.LabelField("Heart Beat", Utility.Text.Format("{0} / {1}", networkChannel.HeartBeatElapseSeconds.ToString("F2"), networkChannel.HeartBeatInterval.ToString("F2"))); +// EditorGUI.BeginDisabledGroup(!networkChannel.Connected); +// { +// if (GUILayout.Button("Disconnect")) +// { +// networkChannel.Close(); +// } +// } +// EditorGUI.EndDisabledGroup(); +// } +// EditorGUILayout.EndVertical(); +// +// EditorGUILayout.Separator(); +// } +// } +// } diff --git a/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs b/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs deleted file mode 100644 index ce0e091d..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs +++ /dev/null @@ -1,61 +0,0 @@ -using UnityEngine; - -namespace TEngine.Runtime -{ - public sealed partial class DebuggerComponent - { - private sealed class NetworkInformationWindow : ScrollableDebuggerWindowBase - { - private Network m_NetworkComponent = null; - - public override void Initialize(params object[] args) - { - m_NetworkComponent = Network.Instance; - if (m_NetworkComponent == null) - { - Log.Fatal("Network component is invalid."); - return; - } - } - - protected override void OnDrawScrollableWindow() - { - GUILayout.Label("Network Information"); - GUILayout.BeginVertical("box"); - { - DrawItem("Network Channel Count", m_NetworkComponent.NetworkChannelCount.ToString()); - } - GUILayout.EndVertical(); - INetworkChannel[] networkChannels = m_NetworkComponent.GetAllNetworkChannels(); - for (int i = 0; i < networkChannels.Length; i++) - { - DrawNetworkChannel(networkChannels[i]); - } - } - - private void DrawNetworkChannel(INetworkChannel networkChannel) - { - GUILayout.Label(Utility.Text.Format("Network Channel: {0} ({1})", networkChannel.Name, networkChannel.Connected ? "Connected" : "Disconnected")); - GUILayout.BeginVertical("box"); - { - DrawItem("Service Type", networkChannel.ServiceType.ToString()); - DrawItem("Address Family", networkChannel.AddressFamily.ToString()); - DrawItem("Local Address", networkChannel.Connected ? networkChannel.Socket.LocalEndPoint.ToString() : "Unavailable"); - DrawItem("Remote Address", networkChannel.Connected ? networkChannel.Socket.RemoteEndPoint.ToString() : "Unavailable"); - DrawItem("Send Packet", Utility.Text.Format("{0} / {1}", networkChannel.SendPacketCount.ToString(), networkChannel.SentPacketCount.ToString())); - DrawItem("Receive Packet", Utility.Text.Format("{0} / {1}", networkChannel.ReceivePacketCount.ToString(), networkChannel.ReceivedPacketCount.ToString())); - DrawItem("Miss Heart Beat Count", networkChannel.MissHeartBeatCount.ToString()); - DrawItem("Heart Beat", Utility.Text.Format("{0} / {1}", networkChannel.HeartBeatElapseSeconds.ToString("F2"), networkChannel.HeartBeatInterval.ToString("F2"))); - if (networkChannel.Connected) - { - if (GUILayout.Button("Disconnect", GUILayout.Height(30f))) - { - networkChannel.Close(); - } - } - } - GUILayout.EndVertical(); - } - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs.meta deleted file mode 100644 index facb8775..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: d9234c66fc6c4421ad762cf70fe9e0a0 -timeCreated: 1661828316 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.cs b/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.cs index bfa8d29b..aea0798e 100644 --- a/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.cs +++ b/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.cs @@ -189,7 +189,7 @@ namespace TEngine.Runtime private RuntimeMemoryInformationWindow m_RuntimeMemoryScriptableObjectInformationWindow = new RuntimeMemoryInformationWindow(); private MemoryPoolInformationWindow m_MemoryPoolInformationWindow = new MemoryPoolInformationWindow(); - private NetworkInformationWindow m_NetworkInformationWindow = new NetworkInformationWindow(); + // private NetworkInformationWindow m_NetworkInformationWindow = new NetworkInformationWindow(); private SettingsWindow m_SettingsWindow = new SettingsWindow(); #endregion @@ -229,7 +229,7 @@ namespace TEngine.Runtime RegisterDebuggerWindow("Profiler/Memory/ScriptableObject", m_RuntimeMemoryScriptableObjectInformationWindow); RegisterDebuggerWindow("Profiler/Memory Pool", m_MemoryPoolInformationWindow); - RegisterDebuggerWindow("Profiler/Network", m_NetworkInformationWindow); + // RegisterDebuggerWindow("Profiler/Network", m_NetworkInformationWindow); RegisterDebuggerWindow("Other/Settings", m_SettingsWindow); diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork.meta deleted file mode 100644 index 7b259d95..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 69740261aa305b94aa6a2a717d82d8e4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/AddressFamily.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/AddressFamily.cs deleted file mode 100644 index fdc3f8fb..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/AddressFamily.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 网络地址类型。 - /// - public enum AddressFamily : byte - { - /// - /// 未知。 - /// - Unknown = 0, - - /// - /// IP 版本 4。 - /// - IPv4, - - /// - /// IP 版本 6。 - /// - IPv6 - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/AddressFamily.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/AddressFamily.cs.meta deleted file mode 100644 index 54d65ab7..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/AddressFamily.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 6f0c907c7aeb4bd2a19ff78ad8e8b668 -timeCreated: 1661772419 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event.meta deleted file mode 100644 index 73250cfc..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2c4f37bbaa3a4ae45a5aa851ec78c3d0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs.meta deleted file mode 100644 index 5329bee4..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1b7b82bd3d86d874c978bebc6147b442 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkClosedEvent.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkClosedEvent.cs deleted file mode 100644 index 67955a71..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkClosedEvent.cs +++ /dev/null @@ -1,120 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 网络连接关闭事件。 - /// - public sealed class NetworkClosedEventArgs : GameEventArgs - { - /// - /// 网络连接关闭事件编号。 - /// - public static readonly int EventId = typeof(NetworkClosedEventArgs).GetHashCode(); - - /// - /// 初始化网络连接关闭事件的新实例。 - /// - public NetworkClosedEventArgs() - { - NetworkChannel = null; - } - - /// - /// 获取网络连接关闭事件编号。 - /// - public override int Id - { - get - { - return EventId; - } - } - - /// - /// 获取网络频道。 - /// - public INetworkChannel NetworkChannel - { - get; - private set; - } - - /// - /// 创建网络连接关闭事件。 - /// - /// 网络频道。 - /// 创建的网络连接关闭事件。 - public static NetworkClosedEventArgs Create(INetworkChannel networkChannel) - { - NetworkClosedEventArgs networkClosedEventArgs = MemoryPool.Acquire(); - networkClosedEventArgs.NetworkChannel = networkChannel; - return networkClosedEventArgs; - } - - /// - /// 清理网络连接关闭事件。 - /// - public override void Clear() - { - NetworkChannel = null; - } - } - - /// - /// 网络连接关闭事件。 - /// - public sealed class NetworkClosedEvent : GameEventArgs - { - /// - /// 网络连接关闭事件编号。 - /// - public static readonly int EventId = typeof(NetworkClosedEvent).GetHashCode(); - - /// - /// 初始化网络连接关闭事件的新实例。 - /// - public NetworkClosedEvent() - { - NetworkChannel = null; - } - - /// - /// 获取网络连接关闭事件编号。 - /// - public override int Id - { - get - { - return EventId; - } - } - - /// - /// 获取网络频道。 - /// - public INetworkChannel NetworkChannel - { - get; - private set; - } - - /// - /// 创建网络连接关闭事件。 - /// - /// 内部事件。 - /// 创建的网络连接关闭事件。 - public static NetworkClosedEvent Create(NetworkClosedEventArgs e) - { - NetworkClosedEvent networkClosedEventArgs = MemoryPool.Acquire(); - networkClosedEventArgs.NetworkChannel = e.NetworkChannel; - return networkClosedEventArgs; - } - - /// - /// 清理网络连接关闭事件。 - /// - public override void Clear() - { - NetworkChannel = null; - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkClosedEvent.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkClosedEvent.cs.meta deleted file mode 100644 index d654d3a4..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkClosedEvent.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 6218d5320c6b4a328df908e68d135177 -timeCreated: 1661772187 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkConnectedEventArgs.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkConnectedEventArgs.cs deleted file mode 100644 index 90bd741d..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkConnectedEventArgs.cs +++ /dev/null @@ -1,142 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 网络连接成功事件。 - /// - public sealed class NetworkConnectedEventArgs : GameEventArgs - { - /// - /// 网络连接成功事件编号。 - /// - public static readonly int EventId = typeof(NetworkConnectedEventArgs).GetHashCode(); - - /// - /// 初始化网络连接成功事件的新实例。 - /// - public NetworkConnectedEventArgs() - { - NetworkChannel = null; - UserData = null; - } - - /// - /// 获取网络连接成功事件编号。 - /// - public override int Id - { - get - { - return EventId; - } - } - - /// - /// 获取网络频道。 - /// - public INetworkChannel NetworkChannel - { - get; - private set; - } - - /// - /// 获取用户自定义数据。 - /// - public object UserData - { - get; - private set; - } - - /// - /// 创建网络连接成功事件。 - /// - /// 网络频道。 - /// 用户自定义数据。 - /// 创建的网络连接成功事件。 - public static NetworkConnectedEventArgs Create(INetworkChannel networkChannel) - { - NetworkConnectedEventArgs networkConnectedEventArgs = MemoryPool.Acquire(); - networkConnectedEventArgs.NetworkChannel = networkChannel; - networkConnectedEventArgs.UserData = null; - return networkConnectedEventArgs; - } - - /// - /// 清理网络连接成功事件。 - /// - public override void Clear() - { - NetworkChannel = null; - UserData = null; - } - } - - public sealed class NetworkConnectedEvent : GameEventArgs - { - /// - /// 网络连接成功事件编号。 - /// - public static readonly int EventId = typeof(NetworkConnectedEvent).GetHashCode(); - - /// - /// 初始化网络连接成功事件的新实例。 - /// - public NetworkConnectedEvent() - { - NetworkChannel = null; - UserData = null; - } - - /// - /// 获取网络连接成功事件编号。 - /// - public override int Id - { - get - { - return EventId; - } - } - - /// - /// 获取网络频道。 - /// - public INetworkChannel NetworkChannel - { - get; - private set; - } - - /// - /// 获取用户自定义数据。 - /// - public object UserData - { - get; - private set; - } - - /// - /// 创建网络连接成功事件。 - /// - /// 内部事件。 - /// 创建的网络连接成功事件。 - public static NetworkConnectedEvent Create(NetworkConnectedEventArgs e) - { - NetworkConnectedEvent networkConnectedEventArgs = MemoryPool.Acquire(); - networkConnectedEventArgs.NetworkChannel = e.NetworkChannel; - networkConnectedEventArgs.UserData = e.UserData; - return networkConnectedEventArgs; - } - - /// - /// 清理网络连接成功事件。 - /// - public override void Clear() - { - NetworkChannel = null; - UserData = null; - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkConnectedEventArgs.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkConnectedEventArgs.cs.meta deleted file mode 100644 index 9c4e82a7..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkConnectedEventArgs.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 64fffbe4a72442f0b3bbd81f78509b13 -timeCreated: 1661772223 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkCustomErrorEvent.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkCustomErrorEvent.cs deleted file mode 100644 index 9963f1be..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkCustomErrorEvent.cs +++ /dev/null @@ -1,145 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 用户自定义网络错误事件。 - /// - public sealed class NetworkCustomErrorEventArgs : GameEventArgs - { - /// - /// 用户自定义网络错误事件编号。 - /// - public static readonly int EventId = typeof(NetworkCustomErrorEventArgs).GetHashCode(); - - /// - /// 初始化用户自定义网络错误事件的新实例。 - /// - public NetworkCustomErrorEventArgs() - { - NetworkChannel = null; - CustomErrorData = null; - } - - /// - /// 获取用户自定义网络错误事件编号。 - /// - public override int Id - { - get - { - return EventId; - } - } - - /// - /// 获取网络频道。 - /// - public INetworkChannel NetworkChannel - { - get; - private set; - } - - /// - /// 获取用户自定义错误数据。 - /// - public object CustomErrorData - { - get; - private set; - } - - /// - /// 创建用户自定义网络错误事件。 - /// - /// 网络频道。 - /// 用户自定义错误数据。 - /// 创建的用户自定义网络错误事件。 - public static NetworkCustomErrorEventArgs Create(INetworkChannel networkChannel, object customErrorData) - { - NetworkCustomErrorEventArgs networkCustomErrorEventArgs = MemoryPool.Acquire(); - networkCustomErrorEventArgs.NetworkChannel = networkChannel; - networkCustomErrorEventArgs.CustomErrorData = customErrorData; - return networkCustomErrorEventArgs; - } - - /// - /// 清理用户自定义网络错误事件。 - /// - public override void Clear() - { - NetworkChannel = null; - CustomErrorData = null; - } - } - - /// - /// 用户自定义网络错误事件。 - /// - public sealed class NetworkCustomErrorEvent : GameEventArgs - { - /// - /// 用户自定义网络错误事件编号。 - /// - public static readonly int EventId = typeof(NetworkCustomErrorEvent).GetHashCode(); - - /// - /// 初始化用户自定义网络错误事件的新实例。 - /// - public NetworkCustomErrorEvent() - { - NetworkChannel = null; - CustomErrorData = null; - } - - /// - /// 获取用户自定义网络错误事件编号。 - /// - public override int Id - { - get - { - return EventId; - } - } - - /// - /// 获取网络频道。 - /// - public INetworkChannel NetworkChannel - { - get; - private set; - } - - /// - /// 获取用户自定义错误数据。 - /// - public object CustomErrorData - { - get; - private set; - } - - /// - /// 创建用户自定义网络错误事件。 - /// - /// 内部事件。 - /// 创建的用户自定义网络错误事件。 - public static NetworkCustomErrorEvent Create(NetworkCustomErrorEventArgs e) - { - NetworkCustomErrorEvent networkCustomErrorEventArgs = MemoryPool.Acquire(); - networkCustomErrorEventArgs.NetworkChannel = e.NetworkChannel; - networkCustomErrorEventArgs.CustomErrorData = e.CustomErrorData; - return networkCustomErrorEventArgs; - } - - /// - /// 清理用户自定义网络错误事件。 - /// - public override void Clear() - { - NetworkChannel = null; - CustomErrorData = null; - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkCustomErrorEvent.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkCustomErrorEvent.cs.meta deleted file mode 100644 index 5a08e28a..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkCustomErrorEvent.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 6947eca0814140a6a7fc564274cdb804 -timeCreated: 1661772258 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkErrorEvent.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkErrorEvent.cs deleted file mode 100644 index d89a65bd..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkErrorEvent.cs +++ /dev/null @@ -1,195 +0,0 @@ -using System.Net.Sockets; - -namespace TEngine.Runtime -{ - /// - /// 网络错误事件。 - /// - public sealed class NetworkErrorEventArgs : GameEventArgs - { - /// - /// 网络错误事件编号。 - /// - public static readonly int EventId = typeof(NetworkErrorEventArgs).GetHashCode(); - - /// - /// 初始化网络错误事件的新实例。 - /// - public NetworkErrorEventArgs() - { - NetworkChannel = null; - ErrorCode = NetworkErrorCode.Unknown; - SocketErrorCode = SocketError.Success; - ErrorMessage = null; - } - - /// - /// 获取网络错误事件编号。 - /// - public override int Id - { - get - { - return EventId; - } - } - - /// - /// 获取网络频道。 - /// - public INetworkChannel NetworkChannel - { - get; - private set; - } - - /// - /// 获取错误码。 - /// - public NetworkErrorCode ErrorCode - { - get; - private set; - } - - /// - /// 获取 Socket 错误码。 - /// - public SocketError SocketErrorCode - { - get; - private set; - } - - /// - /// 获取错误信息。 - /// - public string ErrorMessage - { - get; - private set; - } - - /// - /// 创建网络错误事件。 - /// - /// 网络频道。 - /// 错误码。 - /// Socket 错误码。 - /// 错误信息。 - /// 创建的网络错误事件。 - public static NetworkErrorEventArgs Create(INetworkChannel networkChannel, NetworkErrorCode errorCode, SocketError socketErrorCode, string errorMessage) - { - NetworkErrorEventArgs networkErrorEventArgs = MemoryPool.Acquire(); - networkErrorEventArgs.NetworkChannel = networkChannel; - networkErrorEventArgs.ErrorCode = errorCode; - networkErrorEventArgs.SocketErrorCode = socketErrorCode; - networkErrorEventArgs.ErrorMessage = errorMessage; - return networkErrorEventArgs; - } - - /// - /// 清理网络错误事件。 - /// - public override void Clear() - { - NetworkChannel = null; - ErrorCode = NetworkErrorCode.Unknown; - SocketErrorCode = SocketError.Success; - ErrorMessage = null; - } - } - - /// - /// 网络错误事件。 - /// - public sealed class NetworkErrorEvent : GameEventArgs - { - /// - /// 网络错误事件编号。 - /// - public static readonly int EventId = typeof(NetworkErrorEvent).GetHashCode(); - - /// - /// 初始化网络错误事件的新实例。 - /// - public NetworkErrorEvent() - { - NetworkChannel = null; - ErrorCode = NetworkErrorCode.Unknown; - ErrorMessage = null; - } - - /// - /// 获取网络错误事件编号。 - /// - public override int Id - { - get - { - return EventId; - } - } - - /// - /// 获取网络频道。 - /// - public INetworkChannel NetworkChannel - { - get; - private set; - } - - /// - /// 获取错误码。 - /// - public NetworkErrorCode ErrorCode - { - get; - private set; - } - - /// - /// 获取 Socket 错误码。 - /// - public SocketError SocketErrorCode - { - get; - private set; - } - - /// - /// 获取错误信息。 - /// - public string ErrorMessage - { - get; - private set; - } - - /// - /// 创建网络错误事件。 - /// - /// 内部事件。 - /// 创建的网络错误事件。 - public static NetworkErrorEvent Create(NetworkErrorEventArgs e) - { - NetworkErrorEvent networkErrorEventArgs = MemoryPool.Acquire(); - networkErrorEventArgs.NetworkChannel = e.NetworkChannel; - networkErrorEventArgs.ErrorCode = e.ErrorCode; - networkErrorEventArgs.SocketErrorCode = e.SocketErrorCode; - networkErrorEventArgs.ErrorMessage = e.ErrorMessage; - return networkErrorEventArgs; - } - - /// - /// 清理网络错误事件。 - /// - public override void Clear() - { - NetworkChannel = null; - ErrorCode = NetworkErrorCode.Unknown; - ErrorMessage = null; - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkErrorEvent.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkErrorEvent.cs.meta deleted file mode 100644 index 8e0f5fbe..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkErrorEvent.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 7f64b74fa985459b88f908ff182e8672 -timeCreated: 1661772293 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkMissHeartBeatEvent.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkMissHeartBeatEvent.cs deleted file mode 100644 index e035b266..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkMissHeartBeatEvent.cs +++ /dev/null @@ -1,145 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 网络心跳包丢失事件。 - /// - public sealed class NetworkMissHeartBeatEventArgs : GameEventArgs - { - /// - /// 网络心跳包丢失事件编号。 - /// - public static readonly int EventId = typeof(NetworkMissHeartBeatEventArgs).GetHashCode(); - - /// - /// 初始化网络心跳包丢失事件的新实例。 - /// - public NetworkMissHeartBeatEventArgs() - { - NetworkChannel = null; - MissCount = 0; - } - - /// - /// 获取网络心跳包丢失事件编号。 - /// - public override int Id - { - get - { - return EventId; - } - } - - /// - /// 获取网络频道。 - /// - public INetworkChannel NetworkChannel - { - get; - private set; - } - - /// - /// 获取心跳包已丢失次数。 - /// - public int MissCount - { - get; - private set; - } - - /// - /// 创建网络心跳包丢失事件。 - /// - /// 网络频道。 - /// 心跳包已丢失次数。 - /// 创建的网络心跳包丢失事件。 - public static NetworkMissHeartBeatEventArgs Create(INetworkChannel networkChannel, int missCount) - { - NetworkMissHeartBeatEventArgs networkMissHeartBeatEventArgs = MemoryPool.Acquire(); - networkMissHeartBeatEventArgs.NetworkChannel = networkChannel; - networkMissHeartBeatEventArgs.MissCount = missCount; - return networkMissHeartBeatEventArgs; - } - - /// - /// 清理网络心跳包丢失事件。 - /// - public override void Clear() - { - NetworkChannel = null; - MissCount = 0; - } - } - - /// - /// 网络心跳包丢失事件。 - /// - public sealed class NetworkMissHeartBeatEvent : GameEventArgs - { - /// - /// 网络心跳包丢失事件编号。 - /// - public static readonly int EventId = typeof(NetworkMissHeartBeatEvent).GetHashCode(); - - /// - /// 初始化网络心跳包丢失事件的新实例。 - /// - public NetworkMissHeartBeatEvent() - { - NetworkChannel = null; - MissCount = 0; - } - - /// - /// 获取网络心跳包丢失事件编号。 - /// - public override int Id - { - get - { - return EventId; - } - } - - /// - /// 获取网络频道。 - /// - public INetworkChannel NetworkChannel - { - get; - private set; - } - - /// - /// 获取心跳包已丢失次数。 - /// - public int MissCount - { - get; - private set; - } - - /// - /// 创建网络心跳包丢失事件。 - /// - /// 内部事件。 - /// 创建的网络心跳包丢失事件。 - public static NetworkMissHeartBeatEvent Create(NetworkMissHeartBeatEventArgs e) - { - NetworkMissHeartBeatEvent networkMissHeartBeatEventArgs = MemoryPool.Acquire(); - networkMissHeartBeatEventArgs.NetworkChannel = e.NetworkChannel; - networkMissHeartBeatEventArgs.MissCount = e.MissCount; - return networkMissHeartBeatEventArgs; - } - - /// - /// 清理网络心跳包丢失事件。 - /// - public override void Clear() - { - NetworkChannel = null; - MissCount = 0; - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkMissHeartBeatEvent.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkMissHeartBeatEvent.cs.meta deleted file mode 100644 index 6bf1598c..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventArgs/NetworkMissHeartBeatEvent.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: c2dc35d1fb8047e3b86f4af42124aa06 -timeCreated: 1661772338 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventManager.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventManager.cs deleted file mode 100644 index 1e38928d..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventManager.cs +++ /dev/null @@ -1,130 +0,0 @@ -using System; - -namespace TEngine.Runtime -{ - /// - /// 事件管理器。 - /// - internal sealed class EventManager: IEventManager - { - private readonly EventPool m_EventPool; - - /// - /// 初始化事件管理器的新实例。 - /// - public EventManager() - { - m_EventPool = new EventPool(EventPoolMode.AllowNoHandler | EventPoolMode.AllowMultiHandler); - } - - /// - /// 获取事件处理函数的数量。 - /// - public int EventHandlerCount - { - get - { - return m_EventPool.EventHandlerCount; - } - } - - /// - /// 获取事件数量。 - /// - public int EventCount - { - get - { - return m_EventPool.EventCount; - } - } - - /// - /// 事件管理器轮询。 - /// - /// 逻辑流逝时间,以秒为单位。 - /// 真实流逝时间,以秒为单位。 - public void Update(float elapseSeconds, float realElapseSeconds) - { - m_EventPool.Update(elapseSeconds, realElapseSeconds); - } - - /// - /// 关闭并清理事件管理器。 - /// - public void Shutdown() - { - m_EventPool.Shutdown(); - } - - /// - /// 获取事件处理函数的数量。 - /// - /// 事件类型编号。 - /// 事件处理函数的数量。 - public int Count(int id) - { - return m_EventPool.Count(id); - } - - /// - /// 检查是否存在事件处理函数。 - /// - /// 事件类型编号。 - /// 要检查的事件处理函数。 - /// 是否存在事件处理函数。 - public bool Check(int id, EventHandler handler) - { - return m_EventPool.Check(id, handler); - } - - /// - /// 订阅事件处理函数。 - /// - /// 事件类型编号。 - /// 要订阅的事件处理函数。 - public void Subscribe(int id, EventHandler handler) - { - m_EventPool.Subscribe(id, handler); - } - - /// - /// 取消订阅事件处理函数。 - /// - /// 事件类型编号。 - /// 要取消订阅的事件处理函数。 - public void Unsubscribe(int id, EventHandler handler) - { - m_EventPool.Unsubscribe(id, handler); - } - - /// - /// 设置默认事件处理函数。 - /// - /// 要设置的默认事件处理函数。 - public void SetDefaultHandler(EventHandler handler) - { - m_EventPool.SetDefaultHandler(handler); - } - - /// - /// 抛出事件,这个操作是线程安全的,即使不在主线程中抛出,也可保证在主线程中回调事件处理函数,但事件会在抛出后的下一帧分发。 - /// - /// 事件源。 - /// 事件参数。 - public void Fire(object sender, GameEventArgs e) - { - m_EventPool.Fire(sender, e); - } - - /// - /// 抛出事件立即模式,这个操作不是线程安全的,事件会立刻分发。 - /// - /// 事件源。 - /// 事件参数。 - public void FireNow(object sender, GameEventArgs e) - { - m_EventPool.FireNow(sender, e); - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventManager.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventManager.cs.meta deleted file mode 100644 index a8fa2d15..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventManager.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 5caf443f519944048edbf1bea889f6d2 -timeCreated: 1661775799 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool.meta deleted file mode 100644 index d5f8af7e..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4b813480944c71f47a87c3facb84bce2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/BaseEventArgs.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/BaseEventArgs.cs deleted file mode 100644 index e174a1b6..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/BaseEventArgs.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; - -namespace TEngine.Runtime -{ - /// - /// 事件基类。 - /// - public abstract class BaseEventArgs : EventArgs, IMemory - { - /// - /// 构造函数 - /// - public BaseEventArgs() - { - - } - - /// - /// 获取类型编号。 - /// - public abstract int Id - { - get; - } - - /// - /// 清理引用。 - /// - public abstract void Clear(); - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/BaseEventArgs.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/BaseEventArgs.cs.meta deleted file mode 100644 index e3362be3..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/BaseEventArgs.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 996eb2d764ee87b45a2d2aab7b88e148 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.Event.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.Event.cs deleted file mode 100644 index 2bfa63a0..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.Event.cs +++ /dev/null @@ -1,50 +0,0 @@ -namespace TEngine.Runtime -{ - internal sealed partial class EventPool where T : BaseEventArgs - { - /// - /// 事件结点。 - /// - private sealed class Event : IMemory - { - private object m_Sender; - private T m_EventArgs; - - public Event() - { - m_Sender = null; - m_EventArgs = null; - } - - public object Sender - { - get - { - return m_Sender; - } - } - - public T EventArgs - { - get - { - return m_EventArgs; - } - } - - public static Event Create(object sender, T e) - { - Event eventNode = MemoryPool.Acquire(); - eventNode.m_Sender = sender; - eventNode.m_EventArgs = e; - return eventNode; - } - - public void Clear() - { - m_Sender = null; - m_EventArgs = null; - } - } - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.Event.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.Event.cs.meta deleted file mode 100644 index 7613c093..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.Event.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 342958da5a55f9647a13c573988bdec5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.cs deleted file mode 100644 index 1d751a87..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.cs +++ /dev/null @@ -1,278 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace TEngine.Runtime -{ - /// - /// 事件池。 - /// - /// 事件类型。 - internal sealed partial class EventPool where T : BaseEventArgs - { - private readonly MultiDictionary> m_EventHandlers; - private readonly Queue m_Events; - private readonly Dictionary>> m_CachedNodes; - private readonly Dictionary>> m_TempNodes; - private readonly EventPoolMode m_EventPoolMode; - private EventHandler m_DefaultHandler; - - /// - /// 初始化事件池的新实例。 - /// - /// 事件池模式。 - public EventPool(EventPoolMode mode) - { - m_EventHandlers = new MultiDictionary>(); - m_Events = new Queue(); - m_CachedNodes = new Dictionary>>(); - m_TempNodes = new Dictionary>>(); - m_EventPoolMode = mode; - m_DefaultHandler = null; - } - - /// - /// 获取事件处理函数的数量。 - /// - public int EventHandlerCount - { - get - { - return m_EventHandlers.Count; - } - } - - /// - /// 获取事件数量。 - /// - public int EventCount - { - get - { - return m_Events.Count; - } - } - - /// - /// 事件池轮询。 - /// - /// 逻辑流逝时间,以秒为单位。 - /// 真实流逝时间,以秒为单位。 - public void Update(float elapseSeconds, float realElapseSeconds) - { - lock (m_Events) - { - while (m_Events.Count > 0) - { - Event eventNode = m_Events.Dequeue(); - HandleEvent(eventNode.Sender, eventNode.EventArgs); - MemoryPool.Release(eventNode); - } - } - } - - /// - /// 关闭并清理事件池。 - /// - public void Shutdown() - { - Clear(); - m_EventHandlers.Clear(); - m_CachedNodes.Clear(); - m_TempNodes.Clear(); - m_DefaultHandler = null; - } - - /// - /// 清理事件。 - /// - public void Clear() - { - lock (m_Events) - { - m_Events.Clear(); - } - } - - /// - /// 获取事件处理函数的数量。 - /// - /// 事件类型编号。 - /// 事件处理函数的数量。 - public int Count(int id) - { - LinkedListRange> range = default(LinkedListRange>); - if (m_EventHandlers.TryGetValue(id, out range)) - { - return range.Count; - } - - return 0; - } - - /// - /// 检查是否存在事件处理函数。 - /// - /// 事件类型编号。 - /// 要检查的事件处理函数。 - /// 是否存在事件处理函数。 - public bool Check(int id, EventHandler handler) - { - if (handler == null) - { - throw new Exception("Event handler is invalid."); - } - - return m_EventHandlers.Contains(id, handler); - } - - /// - /// 订阅事件处理函数。 - /// - /// 事件类型编号。 - /// 要订阅的事件处理函数。 - public void Subscribe(int id, EventHandler handler) - { - if (handler == null) - { - throw new Exception("Event handler is invalid."); - } - - if (!m_EventHandlers.Contains(id)) - { - m_EventHandlers.Add(id, handler); - } - else if ((m_EventPoolMode & EventPoolMode.AllowMultiHandler) != EventPoolMode.AllowMultiHandler) - { - throw new Exception(Utility.Text.Format("Event '{0}' not allow multi handler.", id)); - } - else if ((m_EventPoolMode & EventPoolMode.AllowDuplicateHandler) != EventPoolMode.AllowDuplicateHandler && Check(id, handler)) - { - throw new Exception(Utility.Text.Format("Event '{0}' not allow duplicate handler.", id)); - } - else - { - m_EventHandlers.Add(id, handler); - } - } - - /// - /// 取消订阅事件处理函数。 - /// - /// 事件类型编号。 - /// 要取消订阅的事件处理函数。 - public void Unsubscribe(int id, EventHandler handler) - { - if (handler == null) - { - throw new Exception("Event handler is invalid."); - } - - if (m_CachedNodes.Count > 0) - { - foreach (KeyValuePair>> cachedNode in m_CachedNodes) - { - if (cachedNode.Value != null && cachedNode.Value.Value == handler) - { - m_TempNodes.Add(cachedNode.Key, cachedNode.Value.Next); - } - } - - if (m_TempNodes.Count > 0) - { - foreach (KeyValuePair>> cachedNode in m_TempNodes) - { - m_CachedNodes[cachedNode.Key] = cachedNode.Value; - } - - m_TempNodes.Clear(); - } - } - - if (m_EventHandlers.Count >=0 && !m_EventHandlers.Remove(id, handler)) - { - throw new Exception(Utility.Text.Format("Event '{0}' not exists specified handler.", id)); - } - } - - /// - /// 设置默认事件处理函数。 - /// - /// 要设置的默认事件处理函数。 - public void SetDefaultHandler(EventHandler handler) - { - m_DefaultHandler = handler; - } - - /// - /// 抛出事件,这个操作是线程安全的,即使不在主线程中抛出,也可保证在主线程中回调事件处理函数,但事件会在抛出后的下一帧分发。 - /// - /// 事件源。 - /// 事件参数。 - public void Fire(object sender, T e) - { - if (e == null) - { - throw new Exception("Event is invalid."); - } - - Event eventNode = Event.Create(sender, e); - lock (m_Events) - { - m_Events.Enqueue(eventNode); - } - } - - /// - /// 抛出事件立即模式,这个操作不是线程安全的,事件会立刻分发。 - /// - /// 事件源。 - /// 事件参数。 - public void FireNow(object sender, T e) - { - if (e == null) - { - throw new Exception("Event is invalid."); - } - - HandleEvent(sender, e); - } - - /// - /// 处理事件结点。 - /// - /// 事件源。 - /// 事件参数。 - private void HandleEvent(object sender, T e) - { - bool noHandlerException = false; - LinkedListRange> range = default(LinkedListRange>); - if (m_EventHandlers.TryGetValue(e.Id, out range)) - { - LinkedListNode> current = range.First; - while (current != null && current != range.Terminal) - { - m_CachedNodes[e] = current.Next != range.Terminal ? current.Next : null; - current.Value(sender, e); - current = m_CachedNodes[e]; - } - - m_CachedNodes.Remove(e); - } - else if (m_DefaultHandler != null) - { - m_DefaultHandler(sender, e); - } - else if ((m_EventPoolMode & EventPoolMode.AllowNoHandler) == 0) - { - noHandlerException = true; - } - - MemoryPool.Release(e); - - if (noHandlerException) - { - throw new Exception(Utility.Text.Format("Event '{0}' not allow no handler.", e.Id)); - } - } - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.cs.meta deleted file mode 100644 index 1e62e914..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPool.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d5b63a6b52c0c9e42bb270c6756aac26 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPoolMode.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPoolMode.cs deleted file mode 100644 index 00a98165..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPoolMode.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; - -namespace TEngine.Runtime -{ - /// - /// 事件池模式。 - /// - [Flags] - internal enum EventPoolMode : byte - { - /// - /// 默认事件池模式,即必须存在有且只有一个事件处理函数。 - /// - Default = 0, - - /// - /// 允许不存在事件处理函数。 - /// - AllowNoHandler = 1, - - /// - /// 允许存在多个事件处理函数。 - /// - AllowMultiHandler = 2, - - /// - /// 允许存在重复的事件处理函数。 - /// - AllowDuplicateHandler = 4 - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPoolMode.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPoolMode.cs.meta deleted file mode 100644 index 8aa349ba..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/EventPool/EventPoolMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c15df25d44d958f47a48a7ae0f26018c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/GameEventArgs.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/GameEventArgs.cs deleted file mode 100644 index fb0ae382..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/GameEventArgs.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 游戏逻辑事件基类。 - /// - public abstract class GameEventArgs : BaseEventArgs - { - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/GameEventArgs.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/GameEventArgs.cs.meta deleted file mode 100644 index 9a64959f..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/GameEventArgs.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: af3ac5182b9c4df9b51b8720629f19a8 -timeCreated: 1661775780 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/IEventManager.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/IEventManager.cs deleted file mode 100644 index e4f53c67..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/IEventManager.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System; - -namespace TEngine.Runtime -{ - /// - /// 事件管理器接口。 - /// - public interface IEventManager - { - /// - /// 获取事件处理函数的数量。 - /// - int EventHandlerCount - { - get; - } - - /// - /// 获取事件数量。 - /// - int EventCount - { - get; - } - - /// - /// 获取事件处理函数的数量。 - /// - /// 事件类型编号。 - /// 事件处理函数的数量。 - int Count(int id); - - /// - /// 检查是否存在事件处理函数。 - /// - /// 事件类型编号。 - /// 要检查的事件处理函数。 - /// 是否存在事件处理函数。 - bool Check(int id, EventHandler handler); - - /// - /// 订阅事件处理函数。 - /// - /// 事件类型编号。 - /// 要订阅的事件处理函数。 - void Subscribe(int id, EventHandler handler); - - /// - /// 取消订阅事件处理函数。 - /// - /// 事件类型编号。 - /// 要取消订阅的事件处理函数。 - void Unsubscribe(int id, EventHandler handler); - - /// - /// 设置默认事件处理函数。 - /// - /// 要设置的默认事件处理函数。 - void SetDefaultHandler(EventHandler handler); - - /// - /// 抛出事件,这个操作是线程安全的,即使不在主线程中抛出,也可保证在主线程中回调事件处理函数,但事件会在抛出后的下一帧分发。 - /// - /// 事件源。 - /// 事件参数。 - void Fire(object sender, GameEventArgs e); - - /// - /// 抛出事件立即模式,这个操作不是线程安全的,事件会立刻分发。 - /// - /// 事件源。 - /// 事件参数。 - void FireNow(object sender, GameEventArgs e); - - /// - /// 事件管理器轮询。 - /// - /// 逻辑流逝时间,以秒为单位。 - /// 真实流逝时间,以秒为单位。 - void Update(float elapseSeconds, float realElapseSeconds); - - /// - /// 关闭并清理事件管理器。 - /// - void Shutdown(); - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/IEventManager.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/IEventManager.cs.meta deleted file mode 100644 index a652618c..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/IEventManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 056d52252266e8f419ec195f7908a878 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/NetEvent.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/NetEvent.cs deleted file mode 100644 index f3984e43..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/NetEvent.cs +++ /dev/null @@ -1,129 +0,0 @@ -using System; -using UnityEngine; - -namespace TEngine.Runtime -{ - public class NetEvent:BehaviourSingleton - { - private IEventManager m_EventManager = null; - - /// - /// 获取事件处理函数的数量。 - /// - public int EventHandlerCount - { - get - { - return m_EventManager.EventHandlerCount; - } - } - - /// - /// 获取事件数量。 - /// - public int EventCount - { - get - { - return m_EventManager.EventCount; - } - } - - public override void Awake() - { - base.Awake(); - - m_EventManager = new EventManager(); - if (m_EventManager == null) - { - Log.Fatal("Event manager is invalid."); - return; - } - } - - public override void Update() - { - base.Update(); - - if (m_EventManager != null) - { - m_EventManager.Update(Time.deltaTime, Time.unscaledDeltaTime);; - } - } - - public override void Destroy() - { - base.Destroy(); - } - - /// - /// 获取事件处理函数的数量。 - /// - /// 事件类型编号。 - /// 事件处理函数的数量。 - public int Count(int id) - { - return m_EventManager.Count(id); - } - - /// - /// 检查是否存在事件处理函数。 - /// - /// 事件类型编号。 - /// 要检查的事件处理函数。 - /// 是否存在事件处理函数。 - public bool Check(int id, EventHandler handler) - { - return m_EventManager.Check(id, handler); - } - - /// - /// 订阅事件处理回调函数。 - /// - /// 事件类型编号。 - /// 要订阅的事件处理回调函数。 - public void Subscribe(int id, EventHandler handler) - { - m_EventManager.Subscribe(id, handler); - } - - /// - /// 取消订阅事件处理回调函数。 - /// - /// 事件类型编号。 - /// 要取消订阅的事件处理回调函数。 - public void Unsubscribe(int id, EventHandler handler) - { - m_EventManager.Unsubscribe(id, handler); - } - - /// - /// 设置默认事件处理函数。 - /// - /// 要设置的默认事件处理函数。 - public void SetDefaultHandler(EventHandler handler) - { - m_EventManager.SetDefaultHandler(handler); - } - - /// - /// 抛出事件,这个操作是线程安全的,即使不在主线程中抛出,也可保证在主线程中回调事件处理函数,但事件会在抛出后的下一帧分发。 - /// - /// 事件发送者。 - /// 事件内容。 - public void Fire(object sender, GameEventArgs e) - { - m_EventManager.Fire(sender, e); - } - - /// - /// 抛出事件立即模式,这个操作不是线程安全的,事件会立刻分发。 - /// - /// 事件发送者。 - /// 事件内容。 - public void FireNow(object sender, GameEventArgs e) - { - m_EventManager.FireNow(sender, e); - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/NetEvent.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/NetEvent.cs.meta deleted file mode 100644 index a9ef11ec..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Event/NetEvent.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 4e42aa2c6d194fd59c82dc3c597d9152 -timeCreated: 1661775598 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper.meta deleted file mode 100644 index 2410227b..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9de71dee8e9fb74469064a1e1cf7a77b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketBase.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketBase.cs deleted file mode 100644 index 01da915b..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketBase.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace TEngine.Runtime -{ - public abstract class CSPacketBase : PacketBase - { - - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketBase.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketBase.cs.meta deleted file mode 100644 index 3811dce3..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketBase.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ae0dc3216c53aaa4bb05456c6acc64f7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs deleted file mode 100644 index 2e92199e..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using ProtoBuf; - -namespace TEngine.Runtime -{ - [Serializable, ProtoContract(Name = @"CSPacketHeader")] - public sealed class CSPacketHeader : PacketHeaderBase - { - - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs.meta deleted file mode 100644 index 00eff30f..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 383e04755715b054f9e57b1ab1d322af -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/NetworkChannelHelper.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/NetworkChannelHelper.cs deleted file mode 100644 index c137c08d..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/NetworkChannelHelper.cs +++ /dev/null @@ -1,256 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Reflection; -using ProtoBuf; -using ProtoBuf.Meta; - -namespace TEngine.Runtime -{ - public class NetworkChannelHelper : INetworkChannelHelper - { - private readonly Dictionary m_ServerToClientPacketTypes = new Dictionary(); - private readonly MemoryStream m_CachedStream = new MemoryStream(1024 * 8); - private INetworkChannel m_NetworkChannel = null; - - /// - /// 获取消息包头长度。 - /// - public int PacketHeaderLength => sizeof(int); - - /// - /// 初始化网络频道辅助器。 - /// - /// 网络频道。 - public void Initialize(INetworkChannel networkChannel) - { - m_NetworkChannel = networkChannel; - - // 反射注册包和包处理函数。 - Type packetBaseType = typeof(CSPacketBase); - Type packetHandlerBaseType = typeof(PacketHandlerBase); - Assembly assembly = Assembly.GetExecutingAssembly(); - Type[] types = assembly.GetTypes(); - for (int i = 0; i < types.Length; i++) - { - if (!types[i].IsClass || types[i].IsAbstract) - { - continue; - } - - if (types[i].BaseType == packetBaseType) - { - PacketBase packetBase = (PacketBase)Activator.CreateInstance(types[i]); - Type packetType = GetServerToClientPacketType(packetBase.Id); - if (packetType != null) - { - Log.Warning("Already exist packet type '{0}', check '{1}' or '{2}'?.", packetBase.Id.ToString(), packetType.Name, packetBase.GetType().Name); - continue; - } - - m_ServerToClientPacketTypes.Add(packetBase.Id, types[i]); - } - else if (types[i].BaseType == packetHandlerBaseType) - { - IPacketHandler packetHandler = (IPacketHandler)Activator.CreateInstance(types[i]); - m_NetworkChannel.RegisterHandler(packetHandler); - } - } - - NetEvent.Instance.Subscribe(NetworkConnectedEvent.EventId, OnNetworkConnected); - NetEvent.Instance.Subscribe(NetworkClosedEvent.EventId, OnNetworkClosed); - NetEvent.Instance.Subscribe(NetworkMissHeartBeatEvent.EventId, OnNetworkMissHeartBeat); - NetEvent.Instance.Subscribe(NetworkErrorEvent.EventId, OnNetworkError); - NetEvent.Instance.Subscribe(NetworkCustomErrorEvent.EventId, OnNetworkCustomError); - } - - /// - /// 准备进行连接。 - /// - public void PrepareForConnecting() - { - m_NetworkChannel.Socket.ReceiveBufferSize = 1024 * 64; - m_NetworkChannel.Socket.SendBufferSize = 1024 * 64; - } - - /// - /// 发送心跳消息包。 - /// - /// 是否发送心跳消息包成功。 - public bool SendHeartBeat() - { - m_NetworkChannel.Send(MemoryPool.Acquire()); - return true; - } - - /// - /// 序列化消息包。 - /// - /// 消息包类型。 - /// 要序列化的消息包。 - /// 要序列化的目标流。 - /// 是否序列化成功。 - public bool Serialize(T packet, Stream destination) where T : Packet - { - PacketBase packetImpl = packet as PacketBase; - if (packetImpl == null) - { - Log.Warning("Packet is invalid."); - return false; - } - - m_CachedStream.SetLength(m_CachedStream.Capacity); // 此行防止 Array.Copy 的数据无法写入 - m_CachedStream.Position = 0L; - - CSPacketHeader packetHeader = MemoryPool.Acquire(); - Serializer.Serialize(m_CachedStream, packetHeader); - MemoryPool.Release(packetHeader); - - Serializer.SerializeWithLengthPrefix(m_CachedStream, packet, PrefixStyle.Fixed32); - MemoryPool.Release((IMemory)packet); - - m_CachedStream.WriteTo(destination); - return true; - } - - /// - /// 反序列化消息包。 - /// - /// 消息包头。 - /// 要反序列化的来源流。 - /// 用户自定义错误数据。 - /// 反序列化后的消息包。 - public Packet DeserializePacket(IPacketHeader packetHeader, Stream source, out object customErrorData) - { - // 注意:此函数并不在主线程调用! - customErrorData = null; - - CSPacketHeader csPacketHeader = packetHeader as CSPacketHeader; - if (csPacketHeader == null) - { - Log.Warning("Packet header is invalid."); - return null; - } - - Packet packet = null; - if (csPacketHeader.IsValid) - { - Type packetType = GetServerToClientPacketType(csPacketHeader.Id); - if (packetType != null) - { - packet = (Packet)RuntimeTypeModel.Default.DeserializeWithLengthPrefix(source, MemoryPool.Acquire(packetType), packetType, PrefixStyle.Fixed32, 0); - } - else - { - Log.Warning("Can not deserialize packet for packet id '{0}'.", csPacketHeader.Id.ToString()); - } - } - else - { - Log.Warning("Packet header is invalid."); - } - - MemoryPool.Release(csPacketHeader); - return packet; - } - - public IPacketHeader DeserializePacketHeader(Stream source, out object customErrorData) - { - // 注意:此函数并不在主线程调用! - customErrorData = null; - return (IPacketHeader)RuntimeTypeModel.Default.Deserialize(source, MemoryPool.Acquire(), typeof(CSPacketHeader)); - } - - private Type GetServerToClientPacketType(int id) - { - Type type = null; - if (m_ServerToClientPacketTypes.TryGetValue(id, out type)) - { - return type; - } - return null; - } - - /// - /// 关闭并清理网络频道辅助器。 - /// - public void Shutdown() - { - NetEvent.Instance.Unsubscribe(NetworkConnectedEvent.EventId, OnNetworkConnected); - NetEvent.Instance.Unsubscribe(NetworkClosedEvent.EventId, OnNetworkClosed); - NetEvent.Instance.Unsubscribe(NetworkMissHeartBeatEvent.EventId, OnNetworkMissHeartBeat); - NetEvent.Instance.Unsubscribe(NetworkErrorEvent.EventId, OnNetworkError); - NetEvent.Instance.Unsubscribe(NetworkCustomErrorEvent.EventId, OnNetworkCustomError); - - m_NetworkChannel = null; - } - - #region Handle - private void OnNetworkConnected(object sender, GameEventArgs e) - { - NetworkConnectedEvent ne = (NetworkConnectedEvent)e; - if (ne.NetworkChannel != m_NetworkChannel) - { - return; - } - - if (ne.NetworkChannel.Socket == null) - { - return; - } - Log.Info("Network channel '{0}' connected, local address '{1}', remote address '{2}'.", ne.NetworkChannel.Name, ne.NetworkChannel.Socket.LocalEndPoint.ToString(), ne.NetworkChannel.Socket.RemoteEndPoint.ToString()); - } - - private void OnNetworkClosed(object sender, GameEventArgs e) - { - NetworkClosedEvent ne = (NetworkClosedEvent)e; - if (ne.NetworkChannel != m_NetworkChannel) - { - return; - } - Log.Warning("Network channel '{0}' closed.", ne.NetworkChannel.Name); - } - - private void OnNetworkMissHeartBeat(object sender, GameEventArgs e) - { - NetworkMissHeartBeatEvent ne = (NetworkMissHeartBeatEvent)e; - if (ne.NetworkChannel != m_NetworkChannel) - { - return; - } - - Log.Warning("Network channel '{0}' miss heart beat '{1}' times.", ne.NetworkChannel.Name, ne.MissCount.ToString()); - - if (ne.MissCount < 2) - { - return; - } - ne.NetworkChannel.Close(); - } - - private void OnNetworkError(object sender, GameEventArgs e) - { - NetworkErrorEvent ne = (NetworkErrorEvent)e; - if (ne.NetworkChannel != m_NetworkChannel) - { - return; - } - - Log.Fatal("Network channel '{0}' error, error code is '{1}', error message is '{2}'.", ne.NetworkChannel.Name, ne.ErrorCode.ToString(), ne.ErrorMessage); - - ne.NetworkChannel.Close(); - } - - private void OnNetworkCustomError(object sender, GameEventArgs e) - { - NetworkCustomErrorEvent ne = (NetworkCustomErrorEvent)e; - if (ne.NetworkChannel != m_NetworkChannel) - { - return; - } - - Log.Fatal("Network channel '{0}' error, error code is '{1}', error message is '{2}'.", ne.NetworkChannel.Name, ne.CustomErrorData.ToString()); - } - #endregion - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/NetworkChannelHelper.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/NetworkChannelHelper.cs.meta deleted file mode 100644 index 0a65b0f1..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/NetworkChannelHelper.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 02d761e658b2dcd4ea9ebff4ce324968 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/Packet.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/Packet.meta deleted file mode 100644 index 0269249f..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/Packet.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 77278504198432741b5b1efb12e04803 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/Packet/CSHeartBeat.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/Packet/CSHeartBeat.cs deleted file mode 100644 index 5cb0056f..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/Packet/CSHeartBeat.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using ProtoBuf; - -namespace TEngine.Runtime -{ - [Serializable, ProtoContract(Name = @"CSHeartBeat")] - public class CSHeartBeat : CSPacketBase - { - public CSHeartBeat() - { - } - - public override int Id => 1; - - public override void Clear() - { - } - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/Packet/CSHeartBeat.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/Packet/CSHeartBeat.cs.meta deleted file mode 100644 index f360eefc..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/Packet/CSHeartBeat.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0df96c80b0460c24fad98087851fd96c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketBase.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketBase.cs deleted file mode 100644 index d89f039d..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketBase.cs +++ /dev/null @@ -1,19 +0,0 @@ -using ProtoBuf; - -namespace TEngine.Runtime -{ - public abstract class PacketBase : Packet, IExtensible - { - private IExtension m_ExtensionObject; - - public PacketBase() - { - m_ExtensionObject = null; - } - - IExtension IExtensible.GetExtensionObject(bool createIfMissing) - { - return Extensible.GetExtensionObject(ref m_ExtensionObject, createIfMissing); - } - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketBase.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketBase.cs.meta deleted file mode 100644 index 8cdcba05..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketBase.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e8f72df0df1102a4493aac4a082edb0a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandler.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandler.meta deleted file mode 100644 index 9c57d0f7..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandler.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 0396e29af93d424fb252e3cf5a948fa6 -timeCreated: 1661850708 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandler/SCHeartBeatHandler.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandler/SCHeartBeatHandler.cs deleted file mode 100644 index fec38b95..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandler/SCHeartBeatHandler.cs +++ /dev/null @@ -1,27 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 心跳Handler - /// - public class CSHeartBeatHandler : PacketHandlerBase - { - public override int Id - { - get - { - return 2; - } - } - - public override void Handle(object sender, Packet packet) - { - CSHeartBeat packetImpl = (CSHeartBeat)packet; - if (packetImpl == null) - { - Log.Fatal("Receive CSHeartBeat Failed !!!"); - return; - } - Log.Info("Receive packet '{0}'.", packetImpl.Id.ToString()); - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandler/SCHeartBeatHandler.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandler/SCHeartBeatHandler.cs.meta deleted file mode 100644 index 571942fb..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandler/SCHeartBeatHandler.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 553b96ca58c647d39802bed84a356608 -timeCreated: 1661850718 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandlerBase.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandlerBase.cs deleted file mode 100644 index 59e4e642..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandlerBase.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// PacketHandler处理,TEngine.Runtime程序集内无需手动注册,实现即可 - /// - public abstract class PacketHandlerBase : IPacketHandler - { - public abstract int Id - { - get; - } - - public abstract void Handle(object sender, Packet packet); - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandlerBase.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandlerBase.cs.meta deleted file mode 100644 index caa10e78..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHandlerBase.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6da38694044dff944af5213c4cb2d413 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs deleted file mode 100644 index e99d169c..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs +++ /dev/null @@ -1,31 +0,0 @@ -namespace TEngine.Runtime -{ - public abstract class PacketHeaderBase : IPacketHeader, IMemory - { - public int Id - { - get; - set; - } - - public int PacketLength - { - get; - set; - } - - public bool IsValid - { - get - { - return Id > 0 && PacketLength >= 0; - } - } - - public void Clear() - { - Id = 0; - PacketLength = 0; - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs.meta deleted file mode 100644 index d280b59c..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 279045bf4ec72144aa03880102a04057 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/ProtoUtils.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/ProtoUtils.cs deleted file mode 100644 index d21d6413..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/ProtoUtils.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System.IO; - -namespace TEngine.Runtime -{ - public class ProtoUtils - { - /// - /// 序列化 MainPack -> byte[] - /// - /// - /// - /// - public static byte[] Serialize(T mainPack) where T : class - { - try - { - using (var stream = new System.IO.MemoryStream()) - { - ProtoBuf.Serializer.Serialize(stream, mainPack); - return stream.ToArray(); - } - } - catch (IOException ex) - { - Log.Error($"[Serialize] Error:{ex.Message}, {ex.Data["StackTrace"]}"); - return null; - } - } - - /// - /// 反序列化 - /// - /// - /// - /// - public static T DeSerialize(byte[] buffer) where T : class - { - try - { - return ProtoBuf.Serializer.Deserialize(typeof(T), new System.IO.MemoryStream(buffer)) as T; - } - catch (IOException ex) - { - Log.Error(($"[DeSerialize] Error:{ex.Message}, {ex.Data["StackTrace"]}")); - return null; - } - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/ProtoUtils.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/ProtoUtils.cs.meta deleted file mode 100644 index ebbdc4f6..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/ProtoUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2ab82c8abf14856489102fe60cc78926 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannel.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannel.cs deleted file mode 100644 index b430dd2e..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannel.cs +++ /dev/null @@ -1,157 +0,0 @@ -using System; -using System.Net; -using System.Net.Sockets; - -namespace TEngine.Runtime -{ - /// - /// 网络频道接口。 - /// - public interface INetworkChannel - { - /// - /// 获取网络频道名称。 - /// - string Name - { - get; - } - - /// - /// 获取网络频道所使用的 Socket。 - /// - Socket Socket - { - get; - } - - /// - /// 获取是否已连接。 - /// - bool Connected - { - get; - } - - /// - /// 获取网络服务类型。 - /// - ServiceType ServiceType - { - get; - } - - /// - /// 获取网络地址类型。 - /// - AddressFamily AddressFamily - { - get; - } - - /// - /// 获取要发送的消息包数量。 - /// - int SendPacketCount - { - get; - } - - /// - /// 获取累计发送的消息包数量。 - /// - int SentPacketCount - { - get; - } - - /// - /// 获取已接收未处理的消息包数量。 - /// - int ReceivePacketCount - { - get; - } - - /// - /// 获取累计已接收的消息包数量。 - /// - int ReceivedPacketCount - { - get; - } - - /// - /// 获取或设置当收到消息包时是否重置心跳流逝时间。 - /// - bool ResetHeartBeatElapseSecondsWhenReceivePacket - { - get; - set; - } - - /// - /// 获取丢失心跳的次数。 - /// - int MissHeartBeatCount - { - get; - } - - /// - /// 获取或设置心跳间隔时长,以秒为单位。 - /// - float HeartBeatInterval - { - get; - set; - } - - /// - /// 获取心跳等待时长,以秒为单位。 - /// - float HeartBeatElapseSeconds - { - get; - } - - /// - /// 注册网络消息包处理函数。 - /// - /// 要注册的网络消息包处理函数。 - void RegisterHandler(IPacketHandler handler); - - /// - /// 设置默认事件处理函数。 - /// - /// 要设置的默认事件处理函数。 - void SetDefaultHandler(EventHandler handler); - - /// - /// 连接到远程主机。 - /// - /// 远程主机的 IP 地址。 - /// 远程主机的端口号。 - void Connect(IPAddress ipAddress, int port); - - /// - /// 连接到远程主机。 - /// - /// 远程主机的 IP 地址。 - /// 远程主机的端口号。 - /// 用户自定义数据。 - void Connect(IPAddress ipAddress, int port, object userData); - - /// - /// 关闭网络频道。 - /// - void Close(); - - /// - /// 向远程主机发送消息包。 - /// - /// 消息包类型。 - /// 要发送的消息包。 - void Send(T packet) where T : Packet; - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannel.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannel.cs.meta deleted file mode 100644 index 474bacd3..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannel.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: c66ee24862094df49e089d63f7481285 -timeCreated: 1661771701 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannelHelper.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannelHelper.cs deleted file mode 100644 index 40c855e5..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannelHelper.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System.IO; - -namespace TEngine.Runtime -{ - /// - /// 网络频道辅助器接口。 - /// - public interface INetworkChannelHelper - { - /// - /// 获取消息包头长度。 - /// - int PacketHeaderLength - { - get; - } - - /// - /// 初始化网络频道辅助器。 - /// - /// 网络频道。 - void Initialize(INetworkChannel networkChannel); - - /// - /// 关闭并清理网络频道辅助器。 - /// - void Shutdown(); - - /// - /// 准备进行连接。 - /// - void PrepareForConnecting(); - - /// - /// 发送心跳消息包。 - /// - /// 是否发送心跳消息包成功。 - bool SendHeartBeat(); - - /// - /// 序列化消息包。 - /// - /// 消息包类型。 - /// 要序列化的消息包。 - /// 要序列化的目标流。 - /// 是否序列化成功。 - bool Serialize(T packet, Stream destination) where T : Packet; - - /// - /// 反序列化消息包头。 - /// - /// 要反序列化的来源流。 - /// 用户自定义错误数据。 - /// 反序列化后的消息包头。 - IPacketHeader DeserializePacketHeader(Stream source, out object customErrorData); - - /// - /// 反序列化消息包。 - /// - /// 消息包头。 - /// 要反序列化的来源流。 - /// 用户自定义错误数据。 - /// 反序列化后的消息包。 - Packet DeserializePacket(IPacketHeader packetHeader, Stream source, out object customErrorData); - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannelHelper.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannelHelper.cs.meta deleted file mode 100644 index 495fc074..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkChannelHelper.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: aeff0f53fdd54bd489d6a6141e79dca0 -timeCreated: 1661771934 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkManager.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkManager.cs deleted file mode 100644 index 600c32b8..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkManager.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace TEngine.Runtime -{ - /// - /// 网络管理器接口。 - /// - public interface INetworkManager - { - /// - /// 获取网络频道数量。 - /// - int NetworkChannelCount - { - get; - } - - /// - /// 网络连接成功事件。 - /// - event EventHandler NetworkConnected; - - /// - /// 网络连接关闭事件。 - /// - event EventHandler NetworkClosed; - - /// - /// 网络心跳包丢失事件。 - /// - event EventHandler NetworkMissHeartBeat; - - /// - /// 网络错误事件。 - /// - event EventHandler NetworkError; - - /// - /// 用户自定义网络错误事件。 - /// - event EventHandler NetworkCustomError; - - /// - /// 检查是否存在网络频道。 - /// - /// 网络频道名称。 - /// 是否存在网络频道。 - bool HasNetworkChannel(string name); - - /// - /// 获取网络频道。 - /// - /// 网络频道名称。 - /// 要获取的网络频道。 - INetworkChannel GetNetworkChannel(string name); - - /// - /// 获取所有网络频道。 - /// - /// 所有网络频道。 - INetworkChannel[] GetAllNetworkChannels(); - - /// - /// 获取所有网络频道。 - /// - /// 所有网络频道。 - void GetAllNetworkChannels(List results); - - /// - /// 创建网络频道。 - /// - /// 网络频道名称。 - /// 网络服务类型。 - /// 网络频道辅助器。 - /// 要创建的网络频道。 - INetworkChannel CreateNetworkChannel(string name, ServiceType serviceType, INetworkChannelHelper networkChannelHelper); - - /// - /// 销毁网络频道。 - /// - /// 网络频道名称。 - /// 是否销毁网络频道成功。 - bool DestroyNetworkChannel(string name); - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkManager.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkManager.cs.meta deleted file mode 100644 index b8132e5a..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/INetworkManager.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: aa9566de56cd4b579631a1725b89174e -timeCreated: 1661775465 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHandler.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHandler.cs deleted file mode 100644 index de6d9a27..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHandler.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 网络消息包处理器接口。 - /// - public interface IPacketHandler - { - /// - /// 获取网络消息包协议编号。 - /// - int Id - { - get; - } - - /// - /// 网络消息包处理函数。 - /// - /// 网络消息包源。 - /// 网络消息包内容。 - void Handle(object sender, Packet packet); - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHandler.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHandler.cs.meta deleted file mode 100644 index b1d1635b..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHandler.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 49d9ce041dfb4dc98f954dd85e7b9015 -timeCreated: 1661771824 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHeader.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHeader.cs deleted file mode 100644 index 48877019..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHeader.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 网络消息包头接口。 - /// - public interface IPacketHeader - { - /// - /// 获取网络消息包长度。 - /// - int PacketLength - { - get; - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHeader.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHeader.cs.meta deleted file mode 100644 index 888bf894..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/IPacketHeader.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 1a61d331daf74fe48bffbb083f016cb5 -timeCreated: 1661771898 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Network.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Network.cs deleted file mode 100644 index 166274f4..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Network.cs +++ /dev/null @@ -1,163 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace TEngine.Runtime -{ - /// - /// 网络组件。 - /// - [DisallowMultipleComponent] - [AddComponentMenu("TEngine/Network")] - public class Network : UnitySingleton - { - private INetworkManager m_NetworkManager = null; - - public NetworkManager NetworkManager - { - private set; - get; - } - - /// - /// 获取网络频道数量。 - /// - public int NetworkChannelCount - { - get - { - if (m_NetworkManager == null) - { - return 0; - } - return m_NetworkManager.NetworkChannelCount; - } - } - - protected override void OnLoad() - { - base.OnLoad(); - m_NetworkManager = new NetworkManager(); - NetworkManager = m_NetworkManager as NetworkManager; - if (m_NetworkManager == null) - { - Log.Fatal("Network manager is invalid."); - return; - } - - m_NetworkManager.NetworkConnected += OnNetworkConnected; - m_NetworkManager.NetworkClosed += OnNetworkClosed; - m_NetworkManager.NetworkMissHeartBeat += OnNetworkMissHeartBeat; - m_NetworkManager.NetworkError += OnNetworkError; - m_NetworkManager.NetworkCustomError += OnNetworkCustomError; - - if (NetEvent.Instance == null) - { - Log.Fatal("Event component is invalid."); - return; - } - } - - private void Update() - { - if (m_NetworkManager != null) - { - NetworkManager.Update(Time.deltaTime, Time.unscaledDeltaTime);; - } - } - - protected override void OnDestroy() - { - base.OnDestroy(); - if (NetworkManager != null) - { - NetworkManager.Shutdown(); - } - } - - /// - /// 检查是否存在网络频道。 - /// - /// 网络频道名称。 - /// 是否存在网络频道。 - public bool HasNetworkChannel(string name) - { - return m_NetworkManager.HasNetworkChannel(name); - } - - /// - /// 获取网络频道。 - /// - /// 网络频道名称。 - /// 要获取的网络频道。 - public INetworkChannel GetNetworkChannel(string name) - { - return m_NetworkManager.GetNetworkChannel(name); - } - - /// - /// 获取所有网络频道。 - /// - /// 所有网络频道。 - public INetworkChannel[] GetAllNetworkChannels() - { - return m_NetworkManager.GetAllNetworkChannels(); - } - - /// - /// 获取所有网络频道。 - /// - /// 所有网络频道。 - public void GetAllNetworkChannels(List results) - { - m_NetworkManager.GetAllNetworkChannels(results); - } - - /// - /// 创建网络频道。 - /// - /// 网络频道名称。 - /// 网络服务类型。 - /// 网络频道辅助器。 - /// 要创建的网络频道。 - public INetworkChannel CreateNetworkChannel(string name, ServiceType serviceType, INetworkChannelHelper networkChannelHelper) - { - return m_NetworkManager.CreateNetworkChannel(name, serviceType, networkChannelHelper); - } - - /// - /// 销毁网络频道。 - /// - /// 网络频道名称。 - /// 是否销毁网络频道成功。 - public bool DestroyNetworkChannel(string name) - { - return m_NetworkManager.DestroyNetworkChannel(name); - } - - private void OnNetworkConnected(object sender, NetworkConnectedEventArgs e) - { - NetEvent.Instance.Fire(this, NetworkConnectedEvent.Create(e)); - } - - private void OnNetworkClosed(object sender, NetworkClosedEventArgs e) - { - NetEvent.Instance.Fire(this, NetworkClosedEvent.Create(e)); - } - - private void OnNetworkMissHeartBeat(object sender, NetworkMissHeartBeatEventArgs e) - { - NetEvent.Instance.Fire(this, NetworkMissHeartBeatEvent.Create(e)); - } - - private void OnNetworkError(object sender, NetworkErrorEventArgs e) - { - NetEvent.Instance.Fire(this, NetworkErrorEvent.Create(e)); - } - - private void OnNetworkCustomError(object sender, NetworkCustomErrorEventArgs e) - { - NetEvent.Instance.Fire(this, NetworkCustomErrorEvent.Create(e)); - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Network.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Network.cs.meta deleted file mode 100644 index 1760a35a..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Network.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1dd2b00e963a5b54db7aae1b87628982 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkErrorCode.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkErrorCode.cs deleted file mode 100644 index 2ceade3c..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkErrorCode.cs +++ /dev/null @@ -1,53 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 网络错误码。 - /// - public enum NetworkErrorCode : byte - { - /// - /// 未知错误。 - /// - Unknown = 0, - - /// - /// 地址族错误。 - /// - AddressFamilyError, - - /// - /// Socket 错误。 - /// - SocketError, - - /// - /// 连接错误。 - /// - ConnectError, - - /// - /// 发送错误。 - /// - SendError, - - /// - /// 接收错误。 - /// - ReceiveError, - - /// - /// 序列化错误。 - /// - SerializeError, - - /// - /// 反序列化消息包头错误。 - /// - DeserializePacketHeaderError, - - /// - /// 反序列化消息包错误。 - /// - DeserializePacketError - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkErrorCode.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkErrorCode.cs.meta deleted file mode 100644 index 35a0f13b..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkErrorCode.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 86fe9208ee30402ab1fcdc8cdcff1d89 -timeCreated: 1661771970 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ConnectState.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ConnectState.cs deleted file mode 100644 index 3bd4b7f6..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ConnectState.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Net.Sockets; - -namespace TEngine.Runtime -{ - public sealed partial class NetworkManager - { - private sealed class ConnectState - { - private readonly Socket m_Socket; - private readonly object m_UserData; - - public ConnectState(Socket socket, object userData) - { - m_Socket = socket; - m_UserData = userData; - } - - public Socket Socket - { - get - { - return m_Socket; - } - } - - public object UserData - { - get - { - return m_UserData; - } - } - } - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ConnectState.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ConnectState.cs.meta deleted file mode 100644 index ccd0558f..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ConnectState.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 07167c4e7b24c2148acdfe52fbe0c817 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.HeartBeatState.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.HeartBeatState.cs deleted file mode 100644 index 5220221e..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.HeartBeatState.cs +++ /dev/null @@ -1,51 +0,0 @@ -namespace TEngine.Runtime -{ - public sealed partial class NetworkManager - { - private sealed class HeartBeatState - { - private float m_HeartBeatElapseSeconds; - private int m_MissHeartBeatCount; - - public HeartBeatState() - { - m_HeartBeatElapseSeconds = 0f; - m_MissHeartBeatCount = 0; - } - - public float HeartBeatElapseSeconds - { - get - { - return m_HeartBeatElapseSeconds; - } - set - { - m_HeartBeatElapseSeconds = value; - } - } - - public int MissHeartBeatCount - { - get - { - return m_MissHeartBeatCount; - } - set - { - m_MissHeartBeatCount = value; - } - } - - public void Reset(bool resetHeartBeatElapseSeconds) - { - if (resetHeartBeatElapseSeconds) - { - m_HeartBeatElapseSeconds = 0f; - } - - m_MissHeartBeatCount = 0; - } - } - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.HeartBeatState.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.HeartBeatState.cs.meta deleted file mode 100644 index 1ba94069..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.HeartBeatState.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e1beec3505229bd418c252c142a01152 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.NetworkChannelBase.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.NetworkChannelBase.cs deleted file mode 100644 index 0406ac3b..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.NetworkChannelBase.cs +++ /dev/null @@ -1,629 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Net; -using System.Net.Sockets; - -namespace TEngine.Runtime -{ - public sealed partial class NetworkManager - { - /// - /// 网络频道基类。 - /// - private abstract class NetworkChannelBase : INetworkChannel, IDisposable - { - private const float DefaultHeartBeatInterval = 30f; - - private readonly string m_Name; - protected readonly Queue m_SendPacketPool; - protected readonly EventPool m_ReceivePacketPool; - protected readonly INetworkChannelHelper m_NetworkChannelHelper; - protected AddressFamily m_AddressFamily; - protected bool m_ResetHeartBeatElapseSecondsWhenReceivePacket; - protected float m_HeartBeatInterval; - protected Socket m_Socket; - protected readonly SendState m_SendState; - protected readonly ReceiveState m_ReceiveState; - protected readonly HeartBeatState m_HeartBeatState; - protected int m_SentPacketCount; - protected int m_ReceivedPacketCount; - protected bool m_Active; - private bool m_Disposed; - - public Action NetworkChannelConnected; - public Action NetworkChannelClosed; - public Action NetworkChannelMissHeartBeat; - public Action NetworkChannelError; - public Action NetworkChannelCustomError; - - /// - /// 初始化网络频道基类的新实例。 - /// - /// 网络频道名称。 - /// 网络频道辅助器。 - public NetworkChannelBase(string name, INetworkChannelHelper networkChannelHelper) - { - m_Name = name ?? string.Empty; - m_SendPacketPool = new Queue(); - m_ReceivePacketPool = new EventPool(EventPoolMode.Default); - m_NetworkChannelHelper = networkChannelHelper; - m_AddressFamily = AddressFamily.Unknown; - m_ResetHeartBeatElapseSecondsWhenReceivePacket = false; - m_HeartBeatInterval = DefaultHeartBeatInterval; - m_Socket = null; - m_SendState = new SendState(); - m_ReceiveState = new ReceiveState(); - m_HeartBeatState = new HeartBeatState(); - m_SentPacketCount = 0; - m_ReceivedPacketCount = 0; - m_Active = false; - m_Disposed = false; - - NetworkChannelConnected = null; - NetworkChannelClosed = null; - NetworkChannelMissHeartBeat = null; - NetworkChannelError = null; - NetworkChannelCustomError = null; - - networkChannelHelper.Initialize(this); - } - - /// - /// 获取网络频道名称。 - /// - public string Name - { - get - { - return m_Name; - } - } - - /// - /// 获取网络频道所使用的 Socket。 - /// - public Socket Socket - { - get - { - return m_Socket; - } - } - - /// - /// 获取是否已连接。 - /// - public bool Connected - { - get - { - if (m_Socket != null) - { - return m_Socket.Connected; - } - - return false; - } - } - - /// - /// 获取网络服务类型。 - /// - public abstract ServiceType ServiceType - { - get; - } - - /// - /// 获取网络地址类型。 - /// - public AddressFamily AddressFamily - { - get - { - return m_AddressFamily; - } - } - - /// - /// 获取要发送的消息包数量。 - /// - public int SendPacketCount - { - get - { - return m_SendPacketPool.Count; - } - } - - /// - /// 获取累计发送的消息包数量。 - /// - public int SentPacketCount - { - get - { - return m_SentPacketCount; - } - } - - /// - /// 获取已接收未处理的消息包数量。 - /// - public int ReceivePacketCount - { - get - { - return m_ReceivePacketPool.EventCount; - } - } - - /// - /// 获取累计已接收的消息包数量。 - /// - public int ReceivedPacketCount - { - get - { - return m_ReceivedPacketCount; - } - } - - /// - /// 获取或设置当收到消息包时是否重置心跳流逝时间。 - /// - public bool ResetHeartBeatElapseSecondsWhenReceivePacket - { - get - { - return m_ResetHeartBeatElapseSecondsWhenReceivePacket; - } - set - { - m_ResetHeartBeatElapseSecondsWhenReceivePacket = value; - } - } - - /// - /// 获取丢失心跳的次数。 - /// - public int MissHeartBeatCount - { - get - { - return m_HeartBeatState.MissHeartBeatCount; - } - } - - /// - /// 获取或设置心跳间隔时长,以秒为单位。 - /// - public float HeartBeatInterval - { - get - { - return m_HeartBeatInterval; - } - set - { - m_HeartBeatInterval = value; - } - } - - /// - /// 获取心跳等待时长,以秒为单位。 - /// - public float HeartBeatElapseSeconds - { - get - { - return m_HeartBeatState.HeartBeatElapseSeconds; - } - } - - /// - /// 网络频道轮询。 - /// - /// 逻辑流逝时间,以秒为单位。 - /// 真实流逝时间,以秒为单位。 - public virtual void Update(float elapseSeconds, float realElapseSeconds) - { - if (m_Socket == null || !m_Active) - { - return; - } - - ProcessSend(); - ProcessReceive(); - if (m_Socket == null || !m_Active) - { - return; - } - - m_ReceivePacketPool.Update(elapseSeconds, realElapseSeconds); - - if (m_HeartBeatInterval > 0f) - { - bool sendHeartBeat = false; - int missHeartBeatCount = 0; - lock (m_HeartBeatState) - { - if (m_Socket == null || !m_Active) - { - return; - } - - m_HeartBeatState.HeartBeatElapseSeconds += realElapseSeconds; - if (m_HeartBeatState.HeartBeatElapseSeconds >= m_HeartBeatInterval) - { - sendHeartBeat = true; - missHeartBeatCount = m_HeartBeatState.MissHeartBeatCount; - m_HeartBeatState.HeartBeatElapseSeconds = 0f; - m_HeartBeatState.MissHeartBeatCount++; - } - } - - if (sendHeartBeat && m_NetworkChannelHelper.SendHeartBeat()) - { - if (missHeartBeatCount > 0 && NetworkChannelMissHeartBeat != null) - { - NetworkChannelMissHeartBeat(this, missHeartBeatCount); - } - } - } - } - - /// - /// 关闭网络频道。 - /// - public virtual void Shutdown() - { - Close(); - m_ReceivePacketPool.Shutdown(); - m_NetworkChannelHelper.Shutdown(); - } - - /// - /// 注册网络消息包处理函数。 - /// - /// 要注册的网络消息包处理函数。 - public void RegisterHandler(IPacketHandler handler) - { - if (handler == null) - { - throw new Exception("Packet handler is invalid."); - } - - m_ReceivePacketPool.Subscribe(handler.Id, handler.Handle); - } - - /// - /// 设置默认事件处理函数。 - /// - /// 要设置的默认事件处理函数。 - public void SetDefaultHandler(EventHandler handler) - { - m_ReceivePacketPool.SetDefaultHandler(handler); - } - - /// - /// 连接到远程主机。 - /// - /// 远程主机的 IP 地址。 - /// 远程主机的端口号。 - public void Connect(IPAddress ipAddress, int port) - { - Connect(ipAddress, port, null); - } - - /// - /// 连接到远程主机。 - /// - /// 远程主机的 IP 地址。 - /// 远程主机的端口号。 - /// 用户自定义数据。 - public virtual void Connect(IPAddress ipAddress, int port, object userData) - { - if (m_Socket != null) - { - Close(); - m_Socket = null; - } - - switch (ipAddress.AddressFamily) - { - case System.Net.Sockets.AddressFamily.InterNetwork: - m_AddressFamily = AddressFamily.IPv4; - break; - - case System.Net.Sockets.AddressFamily.InterNetworkV6: - m_AddressFamily = AddressFamily.IPv6; - break; - - default: - string errorMessage = Utility.Text.Format("Not supported address family '{0}'.", ipAddress.AddressFamily); - if (NetworkChannelError != null) - { - NetworkChannelError(this, NetworkErrorCode.AddressFamilyError, SocketError.Success, errorMessage); - return; - } - - throw new Exception(errorMessage); - } - - m_SendState.Reset(); - m_ReceiveState.PrepareForPacketHeader(m_NetworkChannelHelper.PacketHeaderLength); - } - - /// - /// 关闭连接并释放所有相关资源。 - /// - public void Close() - { - lock (this) - { - if (m_Socket == null) - { - return; - } - - m_Active = false; - - try - { - m_Socket.Shutdown(SocketShutdown.Both); - } - catch - { - } - finally - { - m_Socket.Close(); - m_Socket = null; - - if (NetworkChannelClosed != null) - { - NetworkChannelClosed(this); - } - } - - m_SentPacketCount = 0; - m_ReceivedPacketCount = 0; - - lock (m_SendPacketPool) - { - m_SendPacketPool.Clear(); - } - - m_ReceivePacketPool.Clear(); - - lock (m_HeartBeatState) - { - m_HeartBeatState.Reset(true); - } - } - } - - /// - /// 向远程主机发送消息包。 - /// - /// 消息包类型。 - /// 要发送的消息包。 - public void Send(T packet) where T : Packet - { - if (m_Socket == null) - { - string errorMessage = "You must connect first."; - if (NetworkChannelError != null) - { - NetworkChannelError(this, NetworkErrorCode.SendError, SocketError.Success, errorMessage); - return; - } - - throw new Exception(errorMessage); - } - - if (!m_Active) - { - string errorMessage = "Socket is not active."; - if (NetworkChannelError != null) - { - NetworkChannelError(this, NetworkErrorCode.SendError, SocketError.Success, errorMessage); - return; - } - - throw new Exception(errorMessage); - } - - if (packet == null) - { - string errorMessage = "Packet is invalid."; - if (NetworkChannelError != null) - { - NetworkChannelError(this, NetworkErrorCode.SendError, SocketError.Success, errorMessage); - return; - } - - throw new Exception(errorMessage); - } - - lock (m_SendPacketPool) - { - m_SendPacketPool.Enqueue(packet); - } - } - - /// - /// 释放资源。 - /// - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - /// - /// 释放资源。 - /// - /// 释放资源标记。 - private void Dispose(bool disposing) - { - if (m_Disposed) - { - return; - } - - if (disposing) - { - Close(); - m_SendState.Dispose(); - m_ReceiveState.Dispose(); - } - - m_Disposed = true; - } - - protected virtual bool ProcessSend() - { - if (m_SendState.Stream.Length > 0 || m_SendPacketPool.Count <= 0) - { - return false; - } - - while (m_SendPacketPool.Count > 0) - { - Packet packet = null; - lock (m_SendPacketPool) - { - packet = m_SendPacketPool.Dequeue(); - } - - bool serializeResult = false; - try - { - serializeResult = m_NetworkChannelHelper.Serialize(packet, m_SendState.Stream); - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.SerializeError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return false; - } - - throw; - } - - if (!serializeResult) - { - string errorMessage = "Serialized packet failure."; - if (NetworkChannelError != null) - { - NetworkChannelError(this, NetworkErrorCode.SerializeError, SocketError.Success, errorMessage); - return false; - } - - throw new Exception(errorMessage); - } - } - - m_SendState.Stream.Position = 0L; - return true; - } - - protected virtual void ProcessReceive() - { - } - - protected virtual bool ProcessPacketHeader() - { - try - { - object customErrorData = null; - IPacketHeader packetHeader = m_NetworkChannelHelper.DeserializePacketHeader(m_ReceiveState.Stream, out customErrorData); - - if (customErrorData != null && NetworkChannelCustomError != null) - { - NetworkChannelCustomError(this, customErrorData); - } - - if (packetHeader == null) - { - string errorMessage = "Packet header is invalid."; - if (NetworkChannelError != null) - { - NetworkChannelError(this, NetworkErrorCode.DeserializePacketHeaderError, SocketError.Success, errorMessage); - return false; - } - - throw new Exception(errorMessage); - } - - m_ReceiveState.PrepareForPacket(packetHeader); - if (packetHeader.PacketLength <= 0) - { - bool processSuccess = ProcessPacket(); - m_ReceivedPacketCount++; - return processSuccess; - } - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.DeserializePacketHeaderError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return false; - } - - throw; - } - - return true; - } - - protected virtual bool ProcessPacket() - { - lock (m_HeartBeatState) - { - m_HeartBeatState.Reset(m_ResetHeartBeatElapseSecondsWhenReceivePacket); - } - - try - { - object customErrorData = null; - Packet packet = m_NetworkChannelHelper.DeserializePacket(m_ReceiveState.PacketHeader, m_ReceiveState.Stream, out customErrorData); - - if (customErrorData != null && NetworkChannelCustomError != null) - { - NetworkChannelCustomError(this, customErrorData); - } - - if (packet != null) - { - m_ReceivePacketPool.Fire(this, packet); - } - - m_ReceiveState.PrepareForPacketHeader(m_NetworkChannelHelper.PacketHeaderLength); - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.DeserializePacketError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return false; - } - - throw; - } - - return true; - } - } - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.NetworkChannelBase.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.NetworkChannelBase.cs.meta deleted file mode 100644 index a096d5c6..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.NetworkChannelBase.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d124c3d2afc7006459e261c8d510711c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ReceiveState.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ReceiveState.cs deleted file mode 100644 index 478b492b..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ReceiveState.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.IO; - -namespace TEngine.Runtime -{ - public sealed partial class NetworkManager - { - private sealed class ReceiveState : IDisposable - { - private const int DefaultBufferLength = 1024 * 64; - private MemoryStream m_Stream; - private IPacketHeader m_PacketHeader; - private bool m_Disposed; - - public ReceiveState() - { - m_Stream = new MemoryStream(DefaultBufferLength); - m_PacketHeader = null; - m_Disposed = false; - } - - public MemoryStream Stream - { - get - { - return m_Stream; - } - } - - public IPacketHeader PacketHeader - { - get - { - return m_PacketHeader; - } - } - - public void PrepareForPacketHeader(int packetHeaderLength) - { - Reset(packetHeaderLength, null); - } - - public void PrepareForPacket(IPacketHeader packetHeader) - { - if (packetHeader == null) - { - throw new Exception("Packet header is invalid."); - } - - Reset(packetHeader.PacketLength, packetHeader); - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - private void Dispose(bool disposing) - { - if (m_Disposed) - { - return; - } - - if (disposing) - { - if (m_Stream != null) - { - m_Stream.Dispose(); - m_Stream = null; - } - } - - m_Disposed = true; - } - - private void Reset(int targetLength, IPacketHeader packetHeader) - { - if (targetLength < 0) - { - throw new Exception("Target length is invalid."); - } - - m_Stream.Position = 0L; - m_Stream.SetLength(targetLength); - m_PacketHeader = packetHeader; - } - } - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ReceiveState.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ReceiveState.cs.meta deleted file mode 100644 index 5d6a2077..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.ReceiveState.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4a8a0b968c7b38442ae9bbf523e6f234 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.SendState.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.SendState.cs deleted file mode 100644 index 9a573301..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.SendState.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.IO; - -namespace TEngine.Runtime -{ - public sealed partial class NetworkManager - { - private sealed class SendState : IDisposable - { - private const int DefaultBufferLength = 1024 * 64; - private MemoryStream m_Stream; - private bool m_Disposed; - - public SendState() - { - m_Stream = new MemoryStream(DefaultBufferLength); - m_Disposed = false; - } - - public MemoryStream Stream - { - get - { - return m_Stream; - } - } - - public void Reset() - { - m_Stream.Position = 0L; - m_Stream.SetLength(0L); - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - private void Dispose(bool disposing) - { - if (m_Disposed) - { - return; - } - - if (disposing) - { - if (m_Stream != null) - { - m_Stream.Dispose(); - m_Stream = null; - } - } - - m_Disposed = true; - } - } - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.SendState.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.SendState.cs.meta deleted file mode 100644 index 1ee0277c..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.SendState.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 01a1e8d0d67bac34a9d5ea40a96bb0eb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.cs deleted file mode 100644 index 05ecfc53..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.cs +++ /dev/null @@ -1,350 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Net.Sockets; - -namespace TEngine.Runtime -{ - /// - /// 网络管理器。 - /// - public sealed partial class NetworkManager : INetworkManager - { - private readonly Dictionary m_NetworkChannels; - - private EventHandler m_NetworkConnectedEventHandler; - private EventHandler m_NetworkClosedEventHandler; - private EventHandler m_NetworkMissHeartBeatEventHandler; - private EventHandler m_NetworkErrorEventHandler; - private EventHandler m_NetworkCustomErrorEventHandler; - - /// - /// 初始化网络管理器的新实例。 - /// - public NetworkManager() - { - m_NetworkChannels = new Dictionary(StringComparer.Ordinal); - m_NetworkConnectedEventHandler = null; - m_NetworkClosedEventHandler = null; - m_NetworkMissHeartBeatEventHandler = null; - m_NetworkErrorEventHandler = null; - m_NetworkCustomErrorEventHandler = null; - } - - /// - /// 获取网络频道数量。 - /// - public int NetworkChannelCount - { - get - { - return m_NetworkChannels.Count; - } - } - - /// - /// 网络连接成功事件。 - /// - public event EventHandler NetworkConnected - { - add - { - m_NetworkConnectedEventHandler += value; - } - remove - { - m_NetworkConnectedEventHandler -= value; - } - } - - /// - /// 网络连接关闭事件。 - /// - public event EventHandler NetworkClosed - { - add - { - m_NetworkClosedEventHandler += value; - } - remove - { - m_NetworkClosedEventHandler -= value; - } - } - - /// - /// 网络心跳包丢失事件。 - /// - public event EventHandler NetworkMissHeartBeat - { - add - { - m_NetworkMissHeartBeatEventHandler += value; - } - remove - { - m_NetworkMissHeartBeatEventHandler -= value; - } - } - - /// - /// 网络错误事件。 - /// - public event EventHandler NetworkError - { - add - { - m_NetworkErrorEventHandler += value; - } - remove - { - m_NetworkErrorEventHandler -= value; - } - } - - /// - /// 用户自定义网络错误事件。 - /// - public event EventHandler NetworkCustomError - { - add - { - m_NetworkCustomErrorEventHandler += value; - } - remove - { - m_NetworkCustomErrorEventHandler -= value; - } - } - - /// - /// 网络管理器轮询。 - /// - /// 逻辑流逝时间,以秒为单位。 - /// 真实流逝时间,以秒为单位。 - public void Update(float elapseSeconds, float realElapseSeconds) - { - foreach (KeyValuePair networkChannel in m_NetworkChannels) - { - networkChannel.Value.Update(elapseSeconds, realElapseSeconds); - } - } - - /// - /// 关闭并清理网络管理器。 - /// - public void Shutdown() - { - foreach (KeyValuePair networkChannel in m_NetworkChannels) - { - NetworkChannelBase networkChannelBase = networkChannel.Value; - networkChannelBase.NetworkChannelConnected -= OnNetworkChannelConnected; - networkChannelBase.NetworkChannelClosed -= OnNetworkChannelClosed; - networkChannelBase.NetworkChannelMissHeartBeat -= OnNetworkChannelMissHeartBeat; - networkChannelBase.NetworkChannelError -= OnNetworkChannelError; - networkChannelBase.NetworkChannelCustomError -= OnNetworkChannelCustomError; - networkChannelBase.Shutdown(); - } - - m_NetworkChannels.Clear(); - } - - /// - /// 检查是否存在网络频道。 - /// - /// 网络频道名称。 - /// 是否存在网络频道。 - public bool HasNetworkChannel(string name) - { - return m_NetworkChannels.ContainsKey(name ?? string.Empty); - } - - /// - /// 获取网络频道。 - /// - /// 网络频道名称。 - /// 要获取的网络频道。 - public INetworkChannel GetNetworkChannel(string name) - { - NetworkChannelBase networkChannel = null; - if (m_NetworkChannels.TryGetValue(name ?? string.Empty, out networkChannel)) - { - return networkChannel; - } - - return null; - } - - /// - /// 获取所有网络频道。 - /// - /// 所有网络频道。 - public INetworkChannel[] GetAllNetworkChannels() - { - int index = 0; - INetworkChannel[] results = new INetworkChannel[m_NetworkChannels.Count]; - foreach (KeyValuePair networkChannel in m_NetworkChannels) - { - results[index++] = networkChannel.Value; - } - - return results; - } - - /// - /// 获取所有网络频道。 - /// - /// 所有网络频道。 - public void GetAllNetworkChannels(List results) - { - if (results == null) - { - throw new Exception("Results is invalid."); - } - - results.Clear(); - foreach (KeyValuePair networkChannel in m_NetworkChannels) - { - results.Add(networkChannel.Value); - } - } - - /// - /// 创建网络频道。 - /// - /// 网络频道名称。 - /// 网络服务类型。 - /// 网络频道辅助器。 - /// 要创建的网络频道。 - public INetworkChannel CreateNetworkChannel(string name, ServiceType serviceType, INetworkChannelHelper networkChannelHelper) - { - if (networkChannelHelper == null) - { - throw new Exception("Network channel helper is invalid."); - } - - if (networkChannelHelper.PacketHeaderLength < 0) - { - throw new Exception("Packet header length is invalid."); - } - - if (HasNetworkChannel(name)) - { - throw new Exception(Utility.Text.Format("Already exist network channel '{0}'.", name ?? string.Empty)); - } - - NetworkChannelBase networkChannel = null; - switch (serviceType) - { - case ServiceType.Tcp: - networkChannel = new TcpNetworkChannel(name, networkChannelHelper); - break; - - case ServiceType.TcpWithSyncReceive: - networkChannel = new TcpWithSyncReceiveNetworkChannel(name, networkChannelHelper); - break; - - case ServiceType.Udp: - networkChannel = new UdpNetworkChannel(name, networkChannelHelper); - break; - - default: - throw new Exception(Utility.Text.Format("Not supported service type '{0}'.", serviceType)); - } - - networkChannel.NetworkChannelConnected += OnNetworkChannelConnected; - networkChannel.NetworkChannelClosed += OnNetworkChannelClosed; - networkChannel.NetworkChannelMissHeartBeat += OnNetworkChannelMissHeartBeat; - networkChannel.NetworkChannelError += OnNetworkChannelError; - networkChannel.NetworkChannelCustomError += OnNetworkChannelCustomError; - m_NetworkChannels.Add(name, networkChannel); - return networkChannel; - } - - /// - /// 销毁网络频道。 - /// - /// 网络频道名称。 - /// 是否销毁网络频道成功。 - public bool DestroyNetworkChannel(string name) - { - NetworkChannelBase networkChannel = null; - if (m_NetworkChannels.TryGetValue(name ?? string.Empty, out networkChannel)) - { - networkChannel.NetworkChannelConnected -= OnNetworkChannelConnected; - networkChannel.NetworkChannelClosed -= OnNetworkChannelClosed; - networkChannel.NetworkChannelMissHeartBeat -= OnNetworkChannelMissHeartBeat; - networkChannel.NetworkChannelError -= OnNetworkChannelError; - networkChannel.NetworkChannelCustomError -= OnNetworkChannelCustomError; - networkChannel.Shutdown(); - return m_NetworkChannels.Remove(name); - } - - return false; - } - - private void OnNetworkChannelConnected(NetworkChannelBase networkChannel, object userData) - { - if (m_NetworkConnectedEventHandler != null) - { - lock (m_NetworkConnectedEventHandler) - { - NetworkConnectedEventArgs networkConnectedEventArgs = NetworkConnectedEventArgs.Create(networkChannel); - m_NetworkConnectedEventHandler(this, networkConnectedEventArgs); - MemoryPool.Release(networkConnectedEventArgs); - } - } - } - - private void OnNetworkChannelClosed(NetworkChannelBase networkChannel) - { - if (m_NetworkClosedEventHandler != null) - { - lock (m_NetworkClosedEventHandler) - { - NetworkClosedEventArgs networkClosedEventArgs = NetworkClosedEventArgs.Create(networkChannel); - m_NetworkClosedEventHandler(this, networkClosedEventArgs); - MemoryPool.Release(networkClosedEventArgs); - } - } - } - - private void OnNetworkChannelMissHeartBeat(NetworkChannelBase networkChannel, int missHeartBeatCount) - { - if (m_NetworkMissHeartBeatEventHandler != null) - { - lock (m_NetworkMissHeartBeatEventHandler) - { - NetworkMissHeartBeatEventArgs networkMissHeartBeatEventArgs = NetworkMissHeartBeatEventArgs.Create(networkChannel, missHeartBeatCount); - m_NetworkMissHeartBeatEventHandler(this, networkMissHeartBeatEventArgs); - MemoryPool.Release(networkMissHeartBeatEventArgs); - } - } - } - - private void OnNetworkChannelError(NetworkChannelBase networkChannel, NetworkErrorCode errorCode, SocketError socketErrorCode, string errorMessage) - { - if (m_NetworkErrorEventHandler != null) - { - lock (m_NetworkErrorEventHandler) - { - NetworkErrorEventArgs networkErrorEventArgs = NetworkErrorEventArgs.Create(networkChannel, errorCode, socketErrorCode, errorMessage); - m_NetworkErrorEventHandler(this, networkErrorEventArgs); - MemoryPool.Release(networkErrorEventArgs); - } - } - } - - private void OnNetworkChannelCustomError(NetworkChannelBase networkChannel, object customErrorData) - { - if (m_NetworkCustomErrorEventHandler != null) - { - lock (m_NetworkCustomErrorEventHandler) - { - NetworkCustomErrorEventArgs networkCustomErrorEventArgs = NetworkCustomErrorEventArgs.Create(networkChannel, customErrorData); - m_NetworkCustomErrorEventHandler(this, networkCustomErrorEventArgs); - MemoryPool.Release(networkCustomErrorEventArgs); - } - } - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.cs.meta deleted file mode 100644 index 97a987d3..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/NetworkManager.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 4ea28106108b496bb4b66fd8aa528797 -timeCreated: 1661772444 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Packet.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Packet.cs deleted file mode 100644 index c4e1ee2e..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Packet.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 网络消息包基类。 - /// - public abstract class Packet : BaseEventArgs - { - - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Packet.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Packet.cs.meta deleted file mode 100644 index 8435f3b5..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Packet.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 4d54f03c4aed4afbab3b4fc45def97c5 -timeCreated: 1661771739 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/ServiceType.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/ServiceType.cs deleted file mode 100644 index bca19f41..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/ServiceType.cs +++ /dev/null @@ -1,28 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 网络服务类型。 - /// - public enum ServiceType : byte - { - /// - /// TCP 网络服务。 - /// - Tcp = 0, - - /// - /// 使用同步接收的 TCP 网络服务。 - /// - TcpWithSyncReceive, - - /// - /// Udp 网络服务。 - /// - Udp, - - /// - /// Kcp 网络服务。 - /// - Kcp, - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/ServiceType.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/ServiceType.cs.meta deleted file mode 100644 index 04b3f41a..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/ServiceType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 11929818b1dbde74ba521dc2c5d03f49 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp.meta deleted file mode 100644 index a5c3cd91..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: bcf0e9cef581b5441ad604bfc2f771c4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpNetworkChannel.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpNetworkChannel.cs deleted file mode 100644 index 56b6e8e2..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpNetworkChannel.cs +++ /dev/null @@ -1,283 +0,0 @@ -using System; -using System.Net; -using System.Net.Sockets; - -namespace TEngine.Runtime -{ - public sealed partial class NetworkManager - { - /// - /// TCP 网络频道。 - /// - private sealed class TcpNetworkChannel : NetworkChannelBase - { - private readonly AsyncCallback m_ConnectCallback; - private readonly AsyncCallback m_SendCallback; - private readonly AsyncCallback m_ReceiveCallback; - - /// - /// 初始化网络频道的新实例。 - /// - /// 网络频道名称。 - /// 网络频道辅助器。 - public TcpNetworkChannel(string name, INetworkChannelHelper networkChannelHelper) - : base(name, networkChannelHelper) - { - m_ConnectCallback = ConnectCallback; - m_SendCallback = SendCallback; - m_ReceiveCallback = ReceiveCallback; - } - - /// - /// 获取网络服务类型。 - /// - public override ServiceType ServiceType - { - get - { - return ServiceType.Tcp; - } - } - - /// - /// 连接到远程主机。 - /// - /// 远程主机的 IP 地址。 - /// 远程主机的端口号。 - /// 用户自定义数据。 - public override void Connect(IPAddress ipAddress, int port, object userData) - { - base.Connect(ipAddress, port, userData); - m_Socket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp); - if (m_Socket == null) - { - string errorMessage = "Initialize network channel failure."; - if (NetworkChannelError != null) - { - NetworkChannelError(this, NetworkErrorCode.SocketError, SocketError.Success, errorMessage); - return; - } - - throw new Exception(errorMessage); - } - - m_NetworkChannelHelper.PrepareForConnecting(); - ConnectAsync(ipAddress, port, userData); - } - - protected override bool ProcessSend() - { - if (base.ProcessSend()) - { - SendAsync(); - return true; - } - - return false; - } - - private void ConnectAsync(IPAddress ipAddress, int port, object userData) - { - try - { - m_Socket.BeginConnect(ipAddress, port, m_ConnectCallback, new ConnectState(m_Socket, userData)); - } - catch (Exception exception) - { - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.ConnectError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - } - - private void ConnectCallback(IAsyncResult ar) - { - ConnectState socketUserData = (ConnectState)ar.AsyncState; - try - { - socketUserData.Socket.EndConnect(ar); - } - catch (ObjectDisposedException) - { - return; - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.ConnectError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - - m_SentPacketCount = 0; - m_ReceivedPacketCount = 0; - - lock (m_SendPacketPool) - { - m_SendPacketPool.Clear(); - } - - m_ReceivePacketPool.Clear(); - - lock (m_HeartBeatState) - { - m_HeartBeatState.Reset(true); - } - - if (NetworkChannelConnected != null) - { - NetworkChannelConnected(this, socketUserData.UserData); - } - - m_Active = true; - ReceiveAsync(); - } - - private void SendAsync() - { - try - { - m_Socket.BeginSend(m_SendState.Stream.GetBuffer(), (int)m_SendState.Stream.Position, (int)(m_SendState.Stream.Length - m_SendState.Stream.Position), SocketFlags.None, m_SendCallback, m_Socket); - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.SendError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - } - - private void SendCallback(IAsyncResult ar) - { - Socket socket = (Socket)ar.AsyncState; - if (!socket.Connected) - { - return; - } - - int bytesSent = 0; - try - { - bytesSent = socket.EndSend(ar); - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.SendError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - - m_SendState.Stream.Position += bytesSent; - if (m_SendState.Stream.Position < m_SendState.Stream.Length) - { - SendAsync(); - return; - } - - m_SentPacketCount++; - m_SendState.Reset(); - } - - private void ReceiveAsync() - { - try - { - m_Socket.BeginReceive(m_ReceiveState.Stream.GetBuffer(), (int)m_ReceiveState.Stream.Position, (int)(m_ReceiveState.Stream.Length - m_ReceiveState.Stream.Position), SocketFlags.None, m_ReceiveCallback, m_Socket); - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.ReceiveError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - } - - private void ReceiveCallback(IAsyncResult ar) - { - Socket socket = (Socket)ar.AsyncState; - if (!socket.Connected) - { - return; - } - - int bytesReceived = 0; - try - { - bytesReceived = socket.EndReceive(ar); - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.ReceiveError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - - if (bytesReceived <= 0) - { - Close(); - return; - } - - m_ReceiveState.Stream.Position += bytesReceived; - if (m_ReceiveState.Stream.Position < m_ReceiveState.Stream.Length) - { - ReceiveAsync(); - return; - } - - m_ReceiveState.Stream.Position = 0L; - - bool processSuccess = false; - if (m_ReceiveState.PacketHeader != null) - { - processSuccess = ProcessPacket(); - m_ReceivedPacketCount++; - } - else - { - processSuccess = ProcessPacketHeader(); - } - - if (processSuccess) - { - ReceiveAsync(); - return; - } - } - } - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpNetworkChannel.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpNetworkChannel.cs.meta deleted file mode 100644 index 0b1fbb8a..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpNetworkChannel.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2df585ebfe0562642b66664dbf0feaaf -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpWithSyncReceiveNetworkChannel.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpWithSyncReceiveNetworkChannel.cs deleted file mode 100644 index 16b9433f..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpWithSyncReceiveNetworkChannel.cs +++ /dev/null @@ -1,259 +0,0 @@ -using System; -using System.Net; -using System.Net.Sockets; - -namespace TEngine.Runtime -{ - public sealed partial class NetworkManager - { - /// - /// 使用同步接收的 TCP 网络频道。 - /// - private sealed class TcpWithSyncReceiveNetworkChannel : NetworkChannelBase - { - private readonly AsyncCallback m_ConnectCallback; - private readonly AsyncCallback m_SendCallback; - - /// - /// 初始化网络频道的新实例。 - /// - /// 网络频道名称。 - /// 网络频道辅助器。 - public TcpWithSyncReceiveNetworkChannel(string name, INetworkChannelHelper networkChannelHelper) - : base(name, networkChannelHelper) - { - m_ConnectCallback = ConnectCallback; - m_SendCallback = SendCallback; - } - - /// - /// 获取网络服务类型。 - /// - public override ServiceType ServiceType - { - get - { - return ServiceType.TcpWithSyncReceive; - } - } - - /// - /// 连接到远程主机。 - /// - /// 远程主机的 IP 地址。 - /// 远程主机的端口号。 - /// 用户自定义数据。 - public override void Connect(IPAddress ipAddress, int port, object userData) - { - base.Connect(ipAddress, port, userData); - m_Socket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp); - if (m_Socket == null) - { - string errorMessage = "Initialize network channel failure."; - if (NetworkChannelError != null) - { - NetworkChannelError(this, NetworkErrorCode.SocketError, SocketError.Success, errorMessage); - return; - } - - throw new Exception(errorMessage); - } - - m_NetworkChannelHelper.PrepareForConnecting(); - ConnectAsync(ipAddress, port, userData); - } - - protected override bool ProcessSend() - { - if (base.ProcessSend()) - { - SendAsync(); - return true; - } - - return false; - } - - protected override void ProcessReceive() - { - base.ProcessReceive(); - while (m_Socket.Available > 0) - { - if (!ReceiveSync()) - { - break; - } - } - } - - private void ConnectAsync(IPAddress ipAddress, int port, object userData) - { - try - { - m_Socket.BeginConnect(ipAddress, port, m_ConnectCallback, new ConnectState(m_Socket, userData)); - } - catch (Exception exception) - { - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.ConnectError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - } - - private void ConnectCallback(IAsyncResult ar) - { - ConnectState socketUserData = (ConnectState)ar.AsyncState; - try - { - socketUserData.Socket.EndConnect(ar); - } - catch (ObjectDisposedException) - { - return; - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.ConnectError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - - m_SentPacketCount = 0; - m_ReceivedPacketCount = 0; - - lock (m_SendPacketPool) - { - m_SendPacketPool.Clear(); - } - - m_ReceivePacketPool.Clear(); - - lock (m_HeartBeatState) - { - m_HeartBeatState.Reset(true); - } - - if (NetworkChannelConnected != null) - { - NetworkChannelConnected(this, socketUserData.UserData); - } - - m_Active = true; - } - - private void SendAsync() - { - try - { - m_Socket.BeginSend(m_SendState.Stream.GetBuffer(), (int)m_SendState.Stream.Position, (int)(m_SendState.Stream.Length - m_SendState.Stream.Position), SocketFlags.None, m_SendCallback, m_Socket); - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.SendError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - } - - private void SendCallback(IAsyncResult ar) - { - Socket socket = (Socket)ar.AsyncState; - if (!socket.Connected) - { - return; - } - - int bytesSent = 0; - try - { - bytesSent = socket.EndSend(ar); - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.SendError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - - m_SendState.Stream.Position += bytesSent; - if (m_SendState.Stream.Position < m_SendState.Stream.Length) - { - SendAsync(); - return; - } - - m_SentPacketCount++; - m_SendState.Reset(); - } - - private bool ReceiveSync() - { - try - { - int bytesReceived = m_Socket.Receive(m_ReceiveState.Stream.GetBuffer(), (int)m_ReceiveState.Stream.Position, (int)(m_ReceiveState.Stream.Length - m_ReceiveState.Stream.Position), SocketFlags.None); - if (bytesReceived <= 0) - { - Close(); - return false; - } - - m_ReceiveState.Stream.Position += bytesReceived; - if (m_ReceiveState.Stream.Position < m_ReceiveState.Stream.Length) - { - return false; - } - - m_ReceiveState.Stream.Position = 0L; - - bool processSuccess = false; - if (m_ReceiveState.PacketHeader != null) - { - processSuccess = ProcessPacket(); - m_ReceivedPacketCount++; - } - else - { - processSuccess = ProcessPacketHeader(); - } - - return processSuccess; - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.ReceiveError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return false; - } - - throw; - } - } - } - } -} diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpWithSyncReceiveNetworkChannel.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpWithSyncReceiveNetworkChannel.cs.meta deleted file mode 100644 index 84d39b9d..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpWithSyncReceiveNetworkChannel.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 19723c1417631894d90eef482924d87d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp.meta deleted file mode 100644 index 74f97f87..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 181b125a26149ad4bbc6f270738f37ce -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp/UdpNetworkChannel.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp/UdpNetworkChannel.cs deleted file mode 100644 index 0aa01271..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp/UdpNetworkChannel.cs +++ /dev/null @@ -1,276 +0,0 @@ -using System; -using System.Net; -using System.Net.Sockets; - -namespace TEngine.Runtime -{ - - public sealed partial class NetworkManager - { - private sealed class UdpNetworkChannel : NetworkChannelBase - { - /// - /// 获取网络服务类型。 - /// - public override ServiceType ServiceType => ServiceType.Udp; - - - private readonly AsyncCallback m_ConnectCallback; - private readonly AsyncCallback m_SendCallback; - private readonly AsyncCallback m_ReceiveCallback; - - /// - /// 初始化网络频道的新实例。 - /// - /// 网络频道名称。 - /// 网络频道辅助器。 - public UdpNetworkChannel(string name, INetworkChannelHelper networkChannelHelper) - : base(name, networkChannelHelper) - { - m_ConnectCallback = ConnectCallback; - m_SendCallback = SendCallback; - m_ReceiveCallback = ReceiveCallback; - } - - /// - /// 连接到远程主机。 - /// - /// 远程主机的 IP 地址。 - /// 远程主机的端口号。 - /// 用户自定义数据。 - public override void Connect(IPAddress ipAddress, int port, object userData) - { - base.Connect(ipAddress, port, userData); - m_Socket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Udp); - if (m_Socket == null) - { - string errorMessage = "Initialize network channel failure."; - if (NetworkChannelError != null) - { - NetworkChannelError(this, NetworkErrorCode.SocketError, SocketError.Success, errorMessage); - return; - } - - throw new Exception(errorMessage); - } - - m_NetworkChannelHelper.PrepareForConnecting(); - ConnectAsync(ipAddress, port, userData); - } - - protected override bool ProcessSend() - { - if (base.ProcessSend()) - { - SendAsync(); - return true; - } - - return false; - } - - private void ConnectAsync(IPAddress ipAddress, int port, object userData) - { - try - { - m_Socket.BeginConnect(ipAddress, port, m_ConnectCallback, new ConnectState(m_Socket, userData)); - } - catch (Exception exception) - { - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.ConnectError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - } - - private void ConnectCallback(IAsyncResult ar) - { - ConnectState socketUserData = (ConnectState)ar.AsyncState; - try - { - socketUserData.Socket.EndConnect(ar); - } - catch (ObjectDisposedException) - { - return; - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.ConnectError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - - m_SentPacketCount = 0; - m_ReceivedPacketCount = 0; - - lock (m_SendPacketPool) - { - m_SendPacketPool.Clear(); - } - - m_ReceivePacketPool.Clear(); - - lock (m_HeartBeatState) - { - m_HeartBeatState.Reset(true); - } - - if (NetworkChannelConnected != null) - { - NetworkChannelConnected(this, socketUserData.UserData); - } - - m_Active = true; - ReceiveAsync(); - } - - private void SendAsync() - { - try - { - m_Socket.BeginSend(m_SendState.Stream.GetBuffer(), (int)m_SendState.Stream.Position, (int)(m_SendState.Stream.Length - m_SendState.Stream.Position), SocketFlags.None, m_SendCallback, m_Socket); - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.SendError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - } - - private void SendCallback(IAsyncResult ar) - { - Socket socket = (Socket)ar.AsyncState; - if (!socket.Connected) - { - return; - } - - int bytesSent = 0; - try - { - bytesSent = socket.EndSend(ar); - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.SendError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - - m_SendState.Stream.Position += bytesSent; - if (m_SendState.Stream.Position < m_SendState.Stream.Length) - { - SendAsync(); - return; - } - - m_SentPacketCount++; - m_SendState.Reset(); - } - - private void ReceiveAsync() - { - try - { - m_Socket.BeginReceive(m_ReceiveState.Stream.GetBuffer(), (int)m_ReceiveState.Stream.Position, (int)(m_ReceiveState.Stream.Length - m_ReceiveState.Stream.Position), SocketFlags.None, m_ReceiveCallback, m_Socket); - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.ReceiveError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - } - - private void ReceiveCallback(IAsyncResult ar) - { - Socket socket = (Socket)ar.AsyncState; - if (!socket.Connected) - { - return; - } - - int bytesReceived = 0; - try - { - bytesReceived = socket.EndReceive(ar); - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.ReceiveError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return; - } - - throw; - } - - if (bytesReceived <= 0) - { - Close(); - return; - } - - m_ReceiveState.Stream.Position += bytesReceived; - if (m_ReceiveState.Stream.Position < m_ReceiveState.Stream.Length) - { - ReceiveAsync(); - return; - } - - m_ReceiveState.Stream.Position = 0L; - - bool processSuccess = false; - if (m_ReceiveState.PacketHeader != null) - { - processSuccess = ProcessPacket(); - m_ReceivedPacketCount++; - } - else - { - processSuccess = ProcessPacketHeader(); - } - - if (processSuccess) - { - ReceiveAsync(); - return; - } - } - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp/UdpNetworkChannel.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp/UdpNetworkChannel.cs.meta deleted file mode 100644 index 8430dd16..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp/UdpNetworkChannel.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 17b9e06584f10da45a8a3ca27fd5e654 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: