示例#1
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;
 }
 public function testGetProtokollString()
 {
     $channel = new Channel('channel');
     $message = 'php';
     $buffer = new Buffer(4 + 1 + 4 + strlen($channel->getName()) + strlen($message));
     $buffer->writeInt32BE($buffer->length() - 4, 0);
     $buffer->writeInt8(0x1, 4);
     $buffer->writeInt32BE(strlen($channel->getName()), 5);
     $buffer->write($channel->getName(), 9);
     $buffer->write($message, 9 + strlen($channel->getName()));
     $msg = new PublishMessage($channel, $message);
     $this->assertEquals((string) $buffer, $msg->getProtokollString());
 }
 public function testGetProtokollString()
 {
     $objectStoreage = new \SplObjectStorage();
     $objectStoreage->attach($this->getChannelMock('channel_one'));
     $objectStoreage->attach($this->getChannelMock('channel_two'));
     $channels = $this->getMock('TrafficCophp\\Channel\\ChannelCollection');
     $channels->expects($this->any())->method('getChannels')->will($this->returnValue($objectStoreage));
     $msg = new SubscribeMessage($channels);
     $raw_channel_string = 'channel_one,channel_two';
     $buf = new Buffer(4 + 1 + 4 + strlen($raw_channel_string));
     $buf->writeInt32BE($buf->length() - 4, 0);
     $buf->writeInt8(0x2, 4);
     $buf->writeInt32BE(strlen($raw_channel_string), 5);
     $buf->write($raw_channel_string, 9);
     $this->assertSame((string) $buf, $msg->getProtokollString());
 }
示例#4
0
 public function getLength()
 {
     return $this->buffer->length();
 }
示例#5
0
 public function testReaderBufferInitializeLenght()
 {
     $buffer = new Buffer(pack('V', 0.0));
     $this->assertEquals(4, $buffer->length());
 }