raklib\server\Session::addEncapsulatedToQueue PHP Метод

addEncapsulatedToQueue() публичный Метод

public addEncapsulatedToQueue ( EncapsulatedPacket $packet, integer $flags = RakLib::PRIORITY_NORMAL )
$packet raklib\protocol\EncapsulatedPacket
$flags integer
    public function addEncapsulatedToQueue(EncapsulatedPacket $packet, $flags = RakLib::PRIORITY_NORMAL)
    {
        if (($packet->needACK = ($flags & RakLib::FLAG_NEED_ACK) > 0) === true) {
            $this->needACK[$packet->identifierACK] = [];
        }
        if ($packet->reliability === PacketReliability::RELIABLE or $packet->reliability === PacketReliability::RELIABLE_ORDERED or $packet->reliability === PacketReliability::RELIABLE_SEQUENCED or $packet->reliability === PacketReliability::RELIABLE_WITH_ACK_RECEIPT or $packet->reliability === PacketReliability::RELIABLE_ORDERED_WITH_ACK_RECEIPT) {
            $packet->messageIndex = $this->messageIndex++;
            if ($packet->reliability === PacketReliability::RELIABLE_ORDERED) {
                $packet->orderIndex = $this->channelIndex[$packet->orderChannel]++;
            }
        }
        if ($packet->getTotalLength() + 4 > $this->mtuSize) {
            $buffers = str_split($packet->buffer, $this->mtuSize - 34);
            $splitID = ++$this->splitID % 65536;
            foreach ($buffers as $count => $buffer) {
                $pk = new EncapsulatedPacket();
                $pk->splitID = $splitID;
                $pk->hasSplit = true;
                $pk->splitCount = count($buffers);
                $pk->reliability = $packet->reliability;
                $pk->splitIndex = $count;
                $pk->buffer = $buffer;
                if ($count > 0) {
                    $pk->messageIndex = $this->messageIndex++;
                } else {
                    $pk->messageIndex = $packet->messageIndex;
                }
                if ($pk->reliability === PacketReliability::RELIABLE_ORDERED) {
                    $pk->orderChannel = $packet->orderChannel;
                    $pk->orderIndex = $packet->orderIndex;
                }
                $this->addToQueue($pk, $flags | RakLib::PRIORITY_IMMEDIATE);
            }
        } else {
            $this->addToQueue($packet, $flags);
        }
    }