Beispiel #1
0
    public Coop_Model_ACK Recv(Coop_Model_Base model)
    {
        Coop_Model_ACK result = null;

        switch (model.c)
        {
        case 1:
        {
            Coop_Model_Register model4 = model as Coop_Model_Register;
            result = RecvRegister(model4);
            break;
        }

        case 15:
        {
            Coop_Model_RoomStageRequest model3 = model as Coop_Model_RoomStageRequest;
            result = RecvRoomStageRequest(model3);
            break;
        }

        case 23:
        {
            Coop_Model_EnemyOut model2 = model as Coop_Model_EnemyOut;
            result = RecvEnemyOut(model2);
            break;
        }
        }
        return(result);
    }
    private void SendAck(CoopPacket p)
    {
        Coop_Model_ACK coop_Model_ACK = new Coop_Model_ACK();

        coop_Model_ACK.ack      = p.sequenceNo;
        coop_Model_ACK.positive = true;
        Send(coop_Model_ACK, -1000, false);
    }
    public int Send <T>(T model, bool promise = true, Func <Coop_Model_ACK, bool> onReceiveAck = null) where T : Coop_Model_Base
    {
        if (!isActivate)
        {
            return(-1);
        }
        Logd("Recv. {0}", model);
        Coop_Model_ACK arg = svSocket.Recv(model);

        onReceiveAck?.Invoke(arg);
        return(0);
    }
 private void RemoveResendPacket(CoopPacket packet)
 {
     if (packet.packetType == PACKET_TYPE.ACK || packet.packetType == PACKET_TYPE.REGISTER_ACK || packet.packetType == PACKET_TYPE.PARTY_REGISTER_ACK || packet.packetType == PACKET_TYPE.LOUNGE_REGISTER_ACK)
     {
         Coop_Model_ACK coop_Model_ACK = packet.model as Coop_Model_ACK;
         if (coop_Model_ACK != null)
         {
             ResendPacket resendPacket = resendPackets.Get((uint)coop_Model_ACK.ack);
             if (resendPacket != null)
             {
                 bool flag = coop_Model_ACK.positive;
                 if (resendPacket.onReceiveAck != null)
                 {
                     flag = resendPacket.onReceiveAck(coop_Model_ACK);
                 }
                 if (flag)
                 {
                     LogDebug("Remove a packet from the resending queue: packet={0}, ack={1}", resendPacket.packet, coop_Model_ACK.ack);
                     resendPackets.Remove((uint)coop_Model_ACK.ack);
                 }
             }
         }
     }
 }