コード例 #1
0
 public function read(PacketStream $stream)
 {
     parent::read($stream);
     $this->assertPacketFlags(0);
     $this->assertRemainingPacketLength();
     $this->protocolName = $stream->readString();
     $this->protocolLevel = $stream->readByte();
     $this->flags = $stream->readByte();
     $this->keepAlive = $stream->readWord();
     $this->clientID = $stream->readString();
     if ($this->hasWill()) {
         $this->willTopic = $stream->readString();
         $this->willMessage = $stream->readString();
     }
     if ($this->hasUsername()) {
         $this->username = $stream->readString();
     }
     if ($this->hasPassword()) {
         $this->password = $stream->readString();
     }
     $this->assertValidWill();
     $this->assertValidString($this->clientID);
     $this->assertValidString($this->willTopic);
     $this->assertValidString($this->username);
 }
コード例 #2
0
 public function read(PacketStream $stream)
 {
     parent::read($stream);
     $this->assertPacketFlags($this->getExpectedPacketFlags());
     $this->assertRemainingPacketLength(2);
     $this->identifier = $stream->readWord();
 }
コード例 #3
0
 public function read(PacketStream $stream)
 {
     parent::read($stream);
     $this->assertPacketFlags(0);
     $this->assertRemainingPacketLength(2);
     $this->flags = $stream->readByte();
     $this->returnCode = $stream->readByte();
 }
コード例 #4
0
 public function read(PacketStream $stream)
 {
     parent::read($stream);
     $this->assertPacketFlags(2);
     $this->assertRemainingPacketLength();
     $this->identifier = $stream->readWord();
     $this->topic = $stream->readString();
     $this->qosLevel = $stream->readByte();
     $this->assertValidQosLevel($this->qosLevel);
     $this->assertValidString($this->topic);
 }
コード例 #5
0
 public function read(PacketStream $stream)
 {
     parent::read($stream);
     $this->assertPacketFlags(2);
     $this->assertRemainingPacketLength();
     $originalPosition = $stream->getPosition();
     do {
         $this->identifier = $stream->readWord();
         $this->topic = $stream->readString();
     } while ($stream->getPosition() - $originalPosition <= $this->remainingPacketLength);
 }
コード例 #6
0
 public function read(PacketStream $stream)
 {
     parent::read($stream);
     $this->assertPacketFlags(0);
     $this->assertRemainingPacketLength();
     $this->identifier = $stream->readWord();
     $returnCodeLength = $this->remainingPacketLength - 2;
     for ($n = 0; $n < $returnCodeLength; ++$n) {
         $returnCode = $stream->readByte();
         $this->assertValidReturnCode($returnCode);
         $this->returnCodes[] = $returnCode;
     }
 }
コード例 #7
0
 public function read(PacketStream $stream)
 {
     parent::read($stream);
     $this->assertRemainingPacketLength();
     $originalPosition = $stream->getPosition();
     $this->topic = $stream->readString();
     $this->identifier = null;
     if ($this->getQosLevel() > 0) {
         $this->identifier = $stream->readWord();
     }
     $payloadLength = $this->remainingPacketLength - ($stream->getPosition() - $originalPosition);
     $this->payload = $stream->read($payloadLength);
     $this->assertValidQosLevel($this->getQosLevel());
     $this->assertValidString($this->topic);
 }
コード例 #8
0
 public function read(PacketStream $stream)
 {
     parent::read($stream);
     $this->assertPacketFlags(0);
     $this->assertRemainingPacketLength(0);
 }