/// <summary> /// 初始化网络频道基类的新实例。 /// </summary> /// <param name="name">网络频道名称。</param> /// <param name="networkChannelHelper">网络频道辅助器。</param> public NetworkChannelBase(string name, INetworkChannelHelper networkChannelHelper) { m_Name = name ?? string.Empty; m_SendPacketPool = new Queue <Packet>(); m_ReceivePacketPool = new EventPool <Packet>(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); }
/// <summary> /// 创建网络频道。 /// </summary> /// <param name="name">网络频道名称。</param> /// <param name="networkChannelHelper">网络频道辅助器。</param> /// <returns>要创建的网络频道。</returns> public INetworkChannel CreateNetworkChannel(string name, INetworkChannelHelper networkChannelHelper) { if (networkChannelHelper == null) { throw new GameFrameworkException("Network channel helper is invalid."); } if (networkChannelHelper.PacketHeaderLength <= 0) { throw new GameFrameworkException("Packet header length is invalid."); } if (HasNetworkChannel(name)) { throw new GameFrameworkException(Utility.Text.Format("Already exist network channel '{0}'.", name ?? string.Empty)); } NetworkChannel networkChannel = new NetworkChannel(name, networkChannelHelper); networkChannel.NetworkChannelConnected += OnNetworkChannelConnected; networkChannel.NetworkChannelClosed += OnNetworkChannelClosed; networkChannel.NetworkChannelMissHeartBeat += OnNetworkChannelMissHeartBeat; networkChannel.NetworkChannelError += OnNetworkChannelError; networkChannel.NetworkChannelCustomError += OnNetworkChannelCustomError; m_NetworkChannels.Add(name, networkChannel); return(networkChannel); }
/// <summary> /// 初始化网络频道的新实例。 /// </summary> /// <param name="name">网络频道名称。</param> /// <param name="networkChannelHelper">网络频道辅助器。</param> public TcpNetworkChannel(string name, INetworkChannelHelper networkChannelHelper) : base(name, networkChannelHelper) { m_ConnectCallback = ConnectCallback; m_SendCallback = SendCallback; m_ReceiveCallback = ReceiveCallback; }
public NetworkChannel(string name, INetworkChannel networkChannelHelper) { m_Name = name ?? string.Empty; m_EventPool = new EventPool<Packet>(EventPoolMode.Defalut); m_NetworkChannelHelper = networkChannelHelper; m_Socket = null; m_ReceiveState = new ReceiveState(); m_Disposed = false; NetworkChannelConnected = null; networkChannelHelper.Initialize(this); }
public INetworkChannel CreateNetworkChannel(string name, INetworkChannelHelper networkChannelHelper) { if (networkChannelHelper == null) { throw; } if (networkChannelHelper.PacketHeaderLength <= 0) { throw; } if (HasNetworkChannel(name)) { } NetworkChannel nc = new NetworkChannel(name, networkChannelHelper); nc.NetworkChannelConnected += OnNetworkChannelConnected; m_NetworkChannels.Add(name, nc); return(networkChannel); }
/// <summary> /// 创建网络频道。 /// </summary> /// <param name="name">网络频道名称。</param> /// <param name="serviceType">网络服务类型。</param> /// <param name="networkChannelHelper">网络频道辅助器。</param> /// <returns>要创建的网络频道。</returns> public INetworkChannel CreateNetworkChannel(string name, ServiceType serviceType, INetworkChannelHelper networkChannelHelper) { if (networkChannelHelper == null) { throw new GameFrameworkException("Network channel helper is invalid."); } if (networkChannelHelper.PacketHeaderLength < 0) { throw new GameFrameworkException("Packet header length is invalid."); } if (HasNetworkChannel(name)) { throw new GameFrameworkException(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; default: throw new GameFrameworkException(Utility.Text.Format("Not supported service type '{0}'.", serviceType.ToString())); } networkChannel.NetworkChannelConnected += OnNetworkChannelConnected; networkChannel.NetworkChannelClosed += OnNetworkChannelClosed; networkChannel.NetworkChannelMissHeartBeat += OnNetworkChannelMissHeartBeat; networkChannel.NetworkChannelError += OnNetworkChannelError; networkChannel.NetworkChannelCustomError += OnNetworkChannelCustomError; m_NetworkChannels.Add(name, networkChannel); return(networkChannel); }
/// <summary> /// 创建网络频道。 /// </summary> /// <param name="name">网络频道名称。</param> /// <param name="serviceType">网络服务类型。</param> /// <param name="networkChannelHelper">网络频道辅助器。</param> /// <returns>要创建的网络频道。</returns> public INetworkChannel CreateNetworkChannel(string name, ServiceType serviceType, INetworkChannelHelper networkChannelHelper) { return(m_NetworkManager.CreateNetworkChannel(name, serviceType, networkChannelHelper)); }
/// <summary> /// 创建网络频道 /// </summary> /// <param name="name"></param> /// <param name="networkChannelHelper"></param> /// <returns></returns> public INetworkChannel CreateNetworkChannel(string name, INetworkChannelHelper networkChannelHelper) { return(this.m_NetworkManager.CreateNetworkChannel(name, networkChannelHelper)); }
/// <summary> /// 创建TcpSync网络频道。 /// </summary> /// <param name="name">网络频道名称。</param> /// <param name="networkChannelHelper">网络频道辅助器。</param> /// <returns>要创建的网络频道。</returns> public INetworkChannel CreateTcpSyncChannel(string name, INetworkChannelHelper networkChannelHelper) { return(m_NetworkManager.CreateNetworkChannel(name, ServiceType.TcpWithSyncReceive, networkChannelHelper)); }