コード例 #1
0
        /// <summary>
        /// 当接收到客户端新消息时,会调用此方法.
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="cmdInfo"></param>
        public override void OnReceived(SocketBase.IConnection connection, TCommandInfo cmdInfo)
        {
            if (string.IsNullOrEmpty(cmdInfo.CmdName))
            {
                return;
            }

            ThreadPool.QueueUserWorkItem(_ =>
            {
                Command.ICommand <TCommandInfo> cmd = null;
                this._dicCommand.TryGetValue(cmdInfo.CmdName, out cmd);
                try
                {
                    if (cmd == null)
                    {
                        this.HandleUnKnowCommand(connection, cmdInfo);
                    }
                    else
                    {
                        cmd.ExecuteCommand(connection, cmdInfo);
                    }
                }
                catch (Exception ex)
                {
                    this.OnCommandExecException(connection, cmdInfo, ex);
                }
            });
        }
コード例 #2
0
        /// <summary>
        /// 当接收到客户端新消息时,会调用此方法.
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="cmdInfo"></param>
        public virtual void OnReceived(SocketBase.IConnection connection, TCommandInfo cmdInfo)
        {
            if (connection == null || cmdInfo == null || string.IsNullOrEmpty(cmdInfo.CmdName))
            {
                return;
            }

            Command.ICommand <TCommandInfo> cmd = null;
            if (this._dicCommand.TryGetValue(cmdInfo.CmdName, out cmd))
            {
                cmd.ExecuteCommand(connection, cmdInfo);
            }
            else
            {
                this.HandleUnKnowCommand(connection, cmdInfo);
            }
        }