/// <summary> /// 创建网络频道。 /// </summary> /// <param name="name">网络频道名称。</param> /// <param name="networkChannelHelper">网络频道辅助器。</param> /// <returns>要创建的网络频道。</returns> public IWebSocketChannel CreateWebSocketChannel(string name, IWebSocketChannelHelper networkChannelHelper) { if (string.IsNullOrEmpty(name)) { throw new GameFrameworkException("Invalid Channel Name"); } if (networkChannelHelper == null) { throw new GameFrameworkException("ChannelHelper Can not be null"); } if (HasWebSocketChannel(name)) { throw new GameFrameworkException("Already Exists Channel " + name); } WebSocketChannel ret = new WebSocketChannel(name, networkChannelHelper); ret.NetworkChannelConnected += OnWebSocketChannelConnected; ret.NetworkChannelSended += OnWebSocketChannelSended; ret.NetworkChannelClosed += OnWebSocketChannelClosed; ret.NetworkChannelMissHeartBeat += OnWebSocketChannelMissHeartBeat; ret.NetworkChannelError += OnWebSocketChannelError; m_WebSocketChannels.Add(name, ret); return(ret); }
/// <summary> /// 初始化自定义网络频道的新实例。 /// </summary> /// <param name="name">网络频道名称。</param> /// <param name="networkChannelHelper">网络频道辅助器。</param> public WebSocketChannel(string name, IWebSocketChannelHelper networkChannelHelper) { m_Name = name ?? string.Empty; m_NetworkChannelHelper = networkChannelHelper; m_ResetHeartBeatElapseSecondsWhenReceivePacket = false; m_HeartBeatInterval = DefaultHeartBeatInterval; m_Socket = null; m_heartbeatTime = 0f; m_missingHeartBeatCount = 0; m_Active = false; m_Disposed = false; NetworkChannelConnected = null; NetworkChannelClosed = null; NetworkChannelSended = null; NetworkChannelMissHeartBeat = null; NetworkChannelError = null; networkChannelHelper.Initialize(this); }