Skip to content

Commit

Permalink
Merge pull request #929 from ratchetphp/v0.4.4
Browse files Browse the repository at this point in the history
v0.4.4
  • Loading branch information
cboden authored Dec 14, 2021
2 parents 78fb27b + 274054c commit 3b6125c
Show file tree
Hide file tree
Showing 11 changed files with 29 additions and 18 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ CHANGELOG

---

* 0.4.4 (2021-12-11)
* Correct and update dependencies for forward compatibility
* Added context for React Socket server to App
* Use non-deprecated Guzzle API calls

* 0.4.3 (2020-06-04)
* BF: Fixed interface acceptable regression in `App`
* Update RFC6455 library with latest fixes
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2011-2020 Chris Boden
Copyright (c) 2011 Chris Boden

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
9 changes: 5 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,12 @@
}
, "require": {
"php": ">=5.4.2"
, "ratchet/rfc6455": "^0.3"
, "ratchet/rfc6455": "^0.3.1"
, "react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5"
, "guzzlehttp/psr7": "^1.0"
, "symfony/http-foundation": "^2.6|^3.0|^4.0|^5.0"
, "symfony/routing": "^2.6|^3.0|^4.0|^5.0"
, "react/event-loop": ">=0.4"
, "guzzlehttp/psr7": "^1.7|^2.0"
, "symfony/http-foundation": "^2.6|^3.0|^4.0|^5.0|^6.0"
, "symfony/routing": "^2.6|^3.0|^4.0|^5.0|^6.0"
}
, "require-dev": {
"phpunit/phpunit": "~4.8"
Expand Down
5 changes: 3 additions & 2 deletions src/Ratchet/App.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,9 @@ class App {
* @param int $port Port to listen on. If 80, assuming production, Flash on 843 otherwise expecting Flash to be proxied through 8843
* @param string $address IP address to bind to. Default is localhost/proxy only. '0.0.0.0' for any machine.
* @param LoopInterface $loop Specific React\EventLoop to bind the application to. null will create one for you.
* @param array $context
*/
public function __construct($httpHost = 'localhost', $port = 8080, $address = '127.0.0.1', LoopInterface $loop = null) {
public function __construct($httpHost = 'localhost', $port = 8080, $address = '127.0.0.1', LoopInterface $loop = null, $context = array()) {
if (extension_loaded('xdebug') && getenv('RATCHET_DISABLE_XDEBUG_WARN') === false) {
trigger_error('XDebug extension detected. Remember to disable this if performance testing or going live!', E_USER_WARNING);
}
Expand All @@ -74,7 +75,7 @@ public function __construct($httpHost = 'localhost', $port = 8080, $address = '1
$this->httpHost = $httpHost;
$this->port = $port;

$socket = new Reactor($address . ':' . $port, $loop);
$socket = new Reactor($address . ':' . $port, $loop, $context);

$this->routes = new RouteCollection;
$this->_server = new IoServer(new HttpServer(new Router(new UrlMatcher($this->routes, new RequestContext))), $socket, $loop);
Expand Down
2 changes: 1 addition & 1 deletion src/Ratchet/ConnectionInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* The version of Ratchet being used
* @var string
*/
const VERSION = 'Ratchet/0.4.3';
const VERSION = 'Ratchet/0.4.4';

/**
* A proxy object representing a connection to the application
Expand Down
6 changes: 3 additions & 3 deletions src/Ratchet/Http/CloseResponseTrait.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?php
namespace Ratchet\Http;
use Ratchet\ConnectionInterface;
use GuzzleHttp\Psr7 as gPsr;
use GuzzleHttp\Psr7\Message;
use GuzzleHttp\Psr7\Response;

trait CloseResponseTrait {
Expand All @@ -16,7 +16,7 @@ private function close(ConnectionInterface $conn, $code = 400, array $additional
'X-Powered-By' => \Ratchet\VERSION
], $additional_headers));

$conn->send(gPsr\str($response));
$conn->send(Message::toString($response));
$conn->close();
}
}
}
4 changes: 2 additions & 2 deletions src/Ratchet/Http/HttpRequestParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
namespace Ratchet\Http;
use Ratchet\MessageInterface;
use Ratchet\ConnectionInterface;
use GuzzleHttp\Psr7 as gPsr;
use GuzzleHttp\Psr7\Message;

/**
* This class receives streaming data from a client request
Expand Down Expand Up @@ -59,6 +59,6 @@ public function isEom($message) {
* @return \Psr\Http\Message\RequestInterface
*/
public function parse($headers) {
return gPsr\parse_request($headers);
return Message::parseRequest($headers);
}
}
6 changes: 3 additions & 3 deletions src/Ratchet/Http/Router.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Symfony\Component\Routing\Matcher\UrlMatcherInterface;
use Symfony\Component\Routing\Exception\MethodNotAllowedException;
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
use GuzzleHttp\Psr7 as gPsr;
use GuzzleHttp\Psr7\Query;

class Router implements HttpServerInterface {
use CloseResponseTrait;
Expand Down Expand Up @@ -61,9 +61,9 @@ public function onOpen(ConnectionInterface $conn, RequestInterface $request = nu
$parameters[$key] = $value;
}
}
$parameters = array_merge($parameters, gPsr\parse_query($uri->getQuery() ?: ''));
$parameters = array_merge($parameters, Query::parse($uri->getQuery() ?: ''));

$request = $request->withUri($uri->withQuery(gPsr\build_query($parameters)));
$request = $request->withUri($uri->withQuery(Query::build($parameters)));

$conn->controller = $route['_controller'];
$conn->controller->onOpen($conn, $request);
Expand Down
2 changes: 2 additions & 0 deletions src/Ratchet/Wamp/Topic.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,15 @@ public function remove(ConnectionInterface $conn) {
/**
* {@inheritdoc}
*/
#[\ReturnTypeWillChange]
public function getIterator() {
return $this->subscribers;
}

/**
* {@inheritdoc}
*/
#[\ReturnTypeWillChange]
public function count() {
return $this->subscribers->count();
}
Expand Down
4 changes: 2 additions & 2 deletions src/Ratchet/WebSocket/WsServer.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use Ratchet\RFC6455\Handshake\ServerNegotiator;
use Ratchet\RFC6455\Handshake\RequestVerifier;
use React\EventLoop\LoopInterface;
use GuzzleHttp\Psr7 as gPsr;
use GuzzleHttp\Psr7\Message;

/**
* The adapter to handle WebSocket requests/responses
Expand Down Expand Up @@ -116,7 +116,7 @@ public function onOpen(ConnectionInterface $conn, RequestInterface $request = nu

$response = $this->handshakeNegotiator->handshake($request)->withHeader('X-Powered-By', \Ratchet\VERSION);

$conn->send(gPsr\str($response));
$conn->send(Message::toString($response));

if (101 !== $response->getStatusCode()) {
return $conn->close();
Expand Down
2 changes: 2 additions & 0 deletions tests/unit/Session/SessionComponentTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
*/
class SessionProviderTest extends AbstractMessageComponentTestCase {
public function setUp() {
return $this->markTestIncomplete('Test needs to be updated for ini_set issue in PHP 7.2');

if (!class_exists('Symfony\Component\HttpFoundation\Session\Session')) {
return $this->markTestSkipped('Dependency of Symfony HttpFoundation failed');
}
Expand Down

0 comments on commit 3b6125c

Please sign in to comment.