/// <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); }
/// <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 }