[WebSocket] RFC Fragmentation

AB tests 5.* passing
Refs #13
This commit is contained in:
Chris Boden 2012-06-16 12:20:14 -04:00
parent 90c3d2107b
commit 5c8d11b8b3
2 changed files with 16 additions and 1 deletions

View File

@ -130,6 +130,14 @@ class RFC6455 implements VersionInterface {
$overflow = $from->WebSocket->frame->extractOverflow();
if ($frame::OP_CONTINUE == $frame->getOpcode() && 0 == count($from->WebSocket->message)) {
return $from->close($frame::CLOSE_PROTOCOL);
}
if (count($from->WebSocket->message) > 0 && $frame::OP_CONTINUE != $frame->getOpcode()) {
return $from->close($frame::CLOSE_PROTOCOL);
}
$from->WebSocket->message->addFrame($from->WebSocket->frame);
unset($from->WebSocket->frame);
}

View File

@ -3,7 +3,7 @@ namespace Ratchet\WebSocket\Version\RFC6455;
use Ratchet\WebSocket\Version\MessageInterface;
use Ratchet\WebSocket\Version\FrameInterface;
class Message implements MessageInterface {
class Message implements MessageInterface, \Countable {
/**
* @var SplDoublyLinkedList
*/
@ -13,6 +13,13 @@ class Message implements MessageInterface {
$this->_frames = new \SplDoublyLinkedList;
}
/**
* {@inheritdoc}
*/
public function count() {
return count($this->_frames);
}
/**
* {@inheritdoc}
*/