/** * @param bool $internal * * @return string */ public function toBinary($internal = false) { $binary = chr($this->reliability << 5 | ($this->hasSplit ? 0b10000 : 0)); if ($internal) { $binary .= Binary::writeInt(strlen($this->buffer)); $binary .= Binary::writeInt($this->identifierACK); } else { $binary .= Binary::writeShort(strlen($this->buffer) << 3); } if ($this->reliability === 2 or $this->reliability === 3 or $this->reliability === 4 or $this->reliability === 6 or $this->reliability === 7) { $binary .= Binary::writeLTriad($this->messageIndex); } if ($this->reliability === 1 or $this->reliability === 3 or $this->reliability === 4 or $this->reliability === 7) { $binary .= Binary::writeLTriad($this->orderIndex) . chr($this->orderChannel); } if ($this->hasSplit) { $binary .= Binary::writeInt($this->splitCount) . Binary::writeShort($this->splitID) . Binary::writeInt($this->splitIndex); } return $binary . $this->buffer; }
protected function streamOpen(Session $session) { $identifier = $session->getAddress() . ":" . $session->getPort(); $buffer = chr(RakLib::PACKET_OPEN_SESSION) . chr(strlen($identifier)) . $identifier . chr(strlen($session->getAddress())) . $session->getAddress() . Binary::writeShort($session->getPort()) . Binary::writeLong($session->getID()); $this->server->pushThreadToMainPacket($buffer); }
protected function putShort($v) { $this->buffer .= Binary::writeShort($v); }
public function sendRaw($address, $port, $payload) { $buffer = chr(RakLib::PACKET_RAW) . chr(strlen($address)) . $address . Binary::writeShort($port) . $payload; $this->server->pushMainToThreadPacket($buffer); }
/** * @param bool $internal * * @return string */ public function toBinary($internal = false) { return chr($this->reliability << 5 | ($this->hasSplit ? 0b10000 : 0)) . ($internal ? Binary::writeInt(strlen($this->buffer)) . Binary::writeInt($this->identifierACK) : Binary::writeShort(strlen($this->buffer) << 3)) . ($this->reliability > 0 ? (($this->reliability >= 2 and $this->reliability !== 5) ? Binary::writeLTriad($this->messageIndex) : "") . (($this->reliability <= 4 and $this->reliability !== 2) ? Binary::writeLTriad($this->orderIndex) . chr($this->orderChannel) : "") : "") . ($this->hasSplit ? Binary::writeInt($this->splitCount) . Binary::writeShort($this->splitID) . Binary::writeInt($this->splitIndex) : "") . $this->buffer; }
/** * @param bool $internal * * @return string */ public function toBinary($internal = false) { return chr($this->reliability << 5 | ($this->hasSplit ? 0b10000 : 0)) . ($internal ? Binary::writeInt(strlen($this->buffer)) . Binary::writeInt($this->identifierACK) : Binary::writeShort(strlen($this->buffer) << 3)) . ($this->reliability > PacketReliability::UNRELIABLE ? (($this->reliability >= PacketReliability::RELIABLE and $this->reliability !== PacketReliability::UNRELIABLE_WITH_ACK_RECEIPT) ? Binary::writeLTriad($this->messageIndex) : "") . (($this->reliability <= PacketReliability::RELIABLE_SEQUENCED and $this->reliability !== PacketReliability::RELIABLE) ? Binary::writeLTriad($this->orderIndex) . chr($this->orderChannel) : "") : "") . ($this->hasSplit ? Binary::writeInt($this->splitCount) . Binary::writeShort($this->splitID) . Binary::writeInt($this->splitIndex) : "") . $this->buffer; }