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( function __construct(
CloseFrameChecker $frameChecker, CloseFrameChecker $frameChecker,
callable $onMessage, callable $onMessage,
callable $sender,
callable $onControl = null, callable $onControl = null,
$expectMask = true, $expectMask = true,
$exceptionFactory = null, $exceptionFactory = null,
callable $sender = null,
PermessageDeflateOptions $permessageDeflateOptions = null PermessageDeflateOptions $permessageDeflateOptions = null
) { ) {
$this->closeFrameChecker = $frameChecker; $this->closeFrameChecker = $frameChecker;
@ -85,6 +85,10 @@ class MessageBuffer {
$this->deflate = $this->permessageDeflateOptions->getDeflate(); $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; $this->compressedMessage = false;
} }
@ -276,6 +280,10 @@ class MessageBuffer {
public function sendFrame(Frame $frame) { 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 && if ($this->deflate &&
($frame->getOpcode() === Frame::OP_TEXT || $frame->getOpcode() === Frame::OP_BINARY)) { ($frame->getOpcode() === Frame::OP_TEXT || $frame->getOpcode() === Frame::OP_BINARY)) {
$frame = $this->deflateFrame($frame); $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) { function (\Ratchet\RFC6455\Messaging\MessageInterface $msg, MessageBuffer $messageBuffer) use ($conn) {
$messageBuffer->sendMessage($msg->getPayload(), true, $msg->isBinary()); $messageBuffer->sendMessage($msg->getPayload(), true, $msg->isBinary());
}, },
[$conn, 'write'],
function (\Ratchet\RFC6455\Messaging\FrameInterface $frame, MessageBuffer $messageBuffer) use ($conn) { function (\Ratchet\RFC6455\Messaging\FrameInterface $frame, MessageBuffer $messageBuffer) use ($conn) {
switch ($frame->getOpcode()) { switch ($frame->getOpcode()) {
case Frame::OP_PING: case Frame::OP_PING:
@ -43,6 +42,7 @@ function echoStreamerFactory($conn, $permessageDeflateOptions = null)
}, },
false, false,
null, null,
[$conn, 'write'],
$permessageDeflateOptions $permessageDeflateOptions
); );
} }
@ -82,9 +82,10 @@ function getTestCases() {
$deferred->resolve($msg->getPayload()); $deferred->resolve($msg->getPayload());
$stream->close(); $stream->close();
}, },
function () {},
null, null,
false false,
null,
function () {}
); );
} }
} }
@ -203,9 +204,10 @@ function createReport() {
$deferred->resolve($msg->getPayload()); $deferred->resolve($msg->getPayload());
$stream->close(); $stream->close();
}, },
function () {},
null, 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) { function (MessageInterface $message, MessageBuffer $messageBuffer) use ($response) {
$messageBuffer->sendMessage($message->getPayload(), true, $message->isBinary()); $messageBuffer->sendMessage($message->getPayload(), true, $message->isBinary());
}, },
[$response, 'write'],
function (FrameInterface $frame) use ($response, &$parser) { function (FrameInterface $frame) use ($response, &$parser) {
switch ($frame->getOpCode()) { switch ($frame->getOpCode()) {
case Frame::OP_CLOSE: case Frame::OP_CLOSE:
@ -59,6 +58,7 @@ $server->on('request', function (\React\Http\Request $request, \React\Http\Respo
function () use ($uException) { function () use ($uException) {
return $uException; return $uException;
}, },
[$response, 'write'],
$deflateOptions $deflateOptions
); );

View File

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