示例#1
0
        /// <summary>
        /// Callback de notificação de pacote recebido.
        /// Localiza o RPC a partir do número da mensagem e transmite o pacote
        /// para o RPC.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="packet"></param>
        protected void OnPacketReceived(object sender, InternalPacket packet)
        {
            int msgId = packet.MsgId;

            IRpc rpc = GetRpc(msgId);

            if (rpc != null)
            {
                rpc.OnPacketReceived(GetSession(), packet);
                return;
            }

            MyDebug.LogDebug("Channel.OnPacketReceived: msgid {0} desconhecido ou inesperado", packet.MsgId);
        }
示例#2
0
        /// <summary>
        /// Callback de notificação de um pacote de rede recebido.
        /// Determina o RPC ativo para o número de mensagem e notifica o
        /// RPC do recebimento.
        /// Caso não haja um RPC ativo (p.ex. uma nova requisição), repassa
        /// o pacote recebido para o callback de recebimento registrado em
        /// ProcessPacketAction.
        /// </summary>
        /// <param name="packet">Pacote de dados contendo a requisição</param>
        private void OnPacketReceived(InternalPacket packet)
        {
            IRpc rpc = GetRpc(packet.MsgId);

            if (rpc != null)
            {
                rpc.OnPacketReceived(this, packet);
                return;
            }

            if (ProcessPacketAction != null)
            {
                ProcessPacketAction.Invoke(this, packet);
                return;
            }

            // Discard unknow or unexpected packet
        }