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