示例#1
0
 /**
  * @throws NoSubscriptionException
  *
  * @return \TrafficCophp\Message\ServerMessage
  */
 public function receive(AbstractServerMessage $message)
 {
     if (!$this->isRegistered()) {
         throw new NoSubscriptionException('Youre not subscribed on a channel!');
     }
     $buffer = new Buffer($this->transport->receive(4));
     $message->parse($this->transport->receive($buffer->readInt32BE(0)));
     return $message;
 }
示例#2
0
 public function parse($raw)
 {
     $buffer = new Buffer($raw);
     $channelLength = $buffer->readInt32BE(0);
     $channelList = $buffer->read(4, $channelLength);
     foreach (explode(',', $channelList) as $channelName) {
         $this->channels->addChannel(new Channel($channelName));
     }
     $this->message = $buffer->read(4 + $channelLength, $buffer->length() - (4 + $channelLength));
     $this->parsed = true;
 }
示例#3
0
 public function testWritingAndReadingOnTheSameBuffer()
 {
     $buffer = new Buffer(10);
     $int32be = 0.0;
     $string = 'hello!';
     $buffer->writeInt32BE($int32be, 0);
     $buffer->write($string, 4);
     $this->assertSame($string, $buffer->read(4, 6));
     $this->assertSame($int32be, $buffer->readInt32BE(0));
 }