From 61ffa6aa2aa85250482a1ed2fb7284f1c48d80aa Mon Sep 17 00:00:00 2001 From: Matt Bonneau Date: Tue, 23 May 2017 17:25:21 -0400 Subject: [PATCH] Move sender parameter to maintain BC with previous version --- src/Messaging/MessageBuffer.php | 10 +++++++++- tests/ab/clientRunner.php | 12 +++++++----- tests/ab/startServer.php | 2 +- tests/unit/Messaging/MessageBufferTest.php | 1 - 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/Messaging/MessageBuffer.php b/src/Messaging/MessageBuffer.php index 63e22ff..e130a78 100644 --- a/src/Messaging/MessageBuffer.php +++ b/src/Messaging/MessageBuffer.php @@ -63,10 +63,10 @@ class MessageBuffer { function __construct( CloseFrameChecker $frameChecker, callable $onMessage, - callable $sender, callable $onControl = null, $expectMask = true, $exceptionFactory = null, + callable $sender = null, PermessageDeflateOptions $permessageDeflateOptions = null ) { $this->closeFrameChecker = $frameChecker; @@ -85,6 +85,10 @@ class MessageBuffer { $this->deflate = $this->permessageDeflateOptions->getDeflate(); + if ($this->deflate && !is_callable($this->sender)) { + throw new \InvalidArgumentException('sender must be set when deflate is enabled'); + } + $this->compressedMessage = false; } @@ -276,6 +280,10 @@ class MessageBuffer { public function sendFrame(Frame $frame) { + if ($this->sender === null) { + throw new \Exception('To send frames using the MessageBuffer, sender must be set.'); + } + if ($this->deflate && ($frame->getOpcode() === Frame::OP_TEXT || $frame->getOpcode() === Frame::OP_BINARY)) { $frame = $this->deflateFrame($frame); diff --git a/tests/ab/clientRunner.php b/tests/ab/clientRunner.php index 60f4479..2094099 100644 --- a/tests/ab/clientRunner.php +++ b/tests/ab/clientRunner.php @@ -30,7 +30,6 @@ function echoStreamerFactory($conn, $permessageDeflateOptions = null) function (\Ratchet\RFC6455\Messaging\MessageInterface $msg, MessageBuffer $messageBuffer) use ($conn) { $messageBuffer->sendMessage($msg->getPayload(), true, $msg->isBinary()); }, - [$conn, 'write'], function (\Ratchet\RFC6455\Messaging\FrameInterface $frame, MessageBuffer $messageBuffer) use ($conn) { switch ($frame->getOpcode()) { case Frame::OP_PING: @@ -43,6 +42,7 @@ function echoStreamerFactory($conn, $permessageDeflateOptions = null) }, false, null, + [$conn, 'write'], $permessageDeflateOptions ); } @@ -82,9 +82,10 @@ function getTestCases() { $deferred->resolve($msg->getPayload()); $stream->close(); }, - function () {}, null, - false + false, + null, + function () {} ); } } @@ -203,9 +204,10 @@ function createReport() { $deferred->resolve($msg->getPayload()); $stream->close(); }, - function () {}, null, - false + false, + null, + function () {} ); } } diff --git a/tests/ab/startServer.php b/tests/ab/startServer.php index 515065a..f4fee3f 100644 --- a/tests/ab/startServer.php +++ b/tests/ab/startServer.php @@ -44,7 +44,6 @@ $server->on('request', function (\React\Http\Request $request, \React\Http\Respo function (MessageInterface $message, MessageBuffer $messageBuffer) use ($response) { $messageBuffer->sendMessage($message->getPayload(), true, $message->isBinary()); }, - [$response, 'write'], function (FrameInterface $frame) use ($response, &$parser) { switch ($frame->getOpCode()) { case Frame::OP_CLOSE: @@ -59,6 +58,7 @@ $server->on('request', function (\React\Http\Request $request, \React\Http\Respo function () use ($uException) { return $uException; }, + [$response, 'write'], $deflateOptions ); diff --git a/tests/unit/Messaging/MessageBufferTest.php b/tests/unit/Messaging/MessageBufferTest.php index 3de8561..c33ff0c 100644 --- a/tests/unit/Messaging/MessageBufferTest.php +++ b/tests/unit/Messaging/MessageBufferTest.php @@ -28,7 +28,6 @@ class MessageBufferTest extends \PHPUnit_Framework_TestCase $messageCount++; $this->assertEquals('a', $message->getPayload()); }, - function () {}, null, false );