示例#1
0
        internal override void OnInitialization()
        {
            base.OnInitialization();

            _helper = Helper as INetworkHelper;
            _helper.LoadProtocolChannels(ChannelTypes);
            _helper.BeginConnectServerEvent += (cha) =>
            {
                BeginConnectServerEvent?.Invoke(cha);
            };
            _helper.ConnectServerSuccessEvent += (cha) =>
            {
                ConnectServerSuccessEvent?.Invoke(cha);
            };
            _helper.ConnectServerFailEvent += (cha) =>
            {
                ConnectServerFailEvent?.Invoke(cha);
            };
            _helper.DisconnectServerEvent += (cha) =>
            {
                DisconnectServerEvent?.Invoke(cha);
            };
            _helper.SendMessageEvent += (cha) =>
            {
                SendMessageEvent?.Invoke(cha);
            };
            _helper.ReceiveMessageEvent += (cha, mes) =>
            {
                ReceiveMessageEvent?.Invoke(cha, mes);
            };
        }
示例#2
0
        /// <summary>
        /// 连接服务器
        /// </summary>
        /// <param name="channelType">通信协议通道类型</param>
        public void ConnectServer(Type channelType)
        {
            if (_protocolChannels.ContainsKey(channelType))
            {
                if (_protocolChannels[channelType].IsNeedConnect)
                {
                    if (_protocolChannels[channelType].IsConnect)
                    {
                        return;
                    }

                    BeginConnectServerEvent?.Invoke(_protocolChannels[channelType]);

                    Main.Current.StartCoroutine(ConnectServerCoroutine(_protocolChannels[channelType]));
                }
                else
                {
                    Log.Warning("连接服务器出错:" + _protocolChannels[channelType].ToString() + " 不需要与服务器保持连接!");
                }
            }
            else
            {
                Log.Warning("连接服务器出错:" + channelType.FullName + " 未启用或并不是有效的通信协议!");
            }
        }