toBinary() public method

public toBinary ( boolean $internal = false ) : string
$internal boolean
return string
 public function sendEncapsulated($identifier, EncapsulatedPacket $packet, $flags = RakLib::PRIORITY_NORMAL)
 {
     $buffer = chr(RakLib::PACKET_ENCAPSULATED) . chr(strlen($identifier)) . $identifier . chr($flags) . $packet->toBinary(true);
     $this->server->pushMainToThreadPacket($buffer);
 }
 public function toBinary($internal = \false)
 {
     return $this->internalData === \null ? $this->internalData = parent::toBinary($internal) : $this->internalData;
 }
Example #3
0
 public function streamEncapsulated(Session $session, EncapsulatedPacket $packet, $flags = RakLib::PRIORITY_NORMAL)
 {
     $id = $session->getAddress() . ":" . $session->getPort();
     $buffer = \chr(RakLib::PACKET_ENCAPSULATED) . \chr(\strlen($id)) . $id . \chr($flags) . $packet->toBinary(\true);
     $this->server->pushThreadToMainPacket($buffer);
 }
Example #4
0
 /**
  * @param EncapsulatedPacket $pk
  * @param int                $flags
  */
 private function addToQueue(EncapsulatedPacket $pk, $flags = RakLib::PRIORITY_NORMAL)
 {
     $priority = $flags & 0b111;
     if ($pk->needACK and $pk->messageIndex !== \null) {
         $this->needACK[$pk->identifierACK][$pk->messageIndex] = $pk->messageIndex;
     }
     if ($priority === RakLib::PRIORITY_IMMEDIATE) {
         //Skip queues
         $packet = new DATA_PACKET_0();
         $packet->seqNumber = $this->sendSeqNumber++;
         if ($pk->needACK) {
             $packet->packets[] = clone $pk;
             $pk->needACK = \false;
         } else {
             $packet->packets[] = $pk->toBinary();
         }
         $this->sendPacket($packet);
         $packet->sendTime = \microtime(\true);
         $this->recoveryQueue[$packet->seqNumber] = $packet;
         return;
     }
     $length = $this->sendQueue->length();
     if ($length + $pk->getTotalLength() > $this->mtuSize) {
         $this->sendQueue();
     }
     if ($pk->needACK) {
         $this->sendQueue->packets[] = clone $pk;
         $pk->needACK = \false;
     } else {
         $this->sendQueue->packets[] = $pk->toBinary();
     }
 }