Move sender parameter to maintain BC with previous version

This commit is contained in:
Matt Bonneau 2017-05-23 17:25:21 -04:00
parent c943ee1771
commit 61ffa6aa2a
4 changed files with 17 additions and 8 deletions

View File

@ -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);

View File

@ -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 () {}
);
}
}

View File

@ -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
);

View File

@ -28,7 +28,6 @@ class MessageBufferTest extends \PHPUnit_Framework_TestCase
$messageCount++;
$this->assertEquals('a', $message->getPayload());
},
function () {},
null,
false
);