Update Socket component to v0.5

This commit is contained in:
Christian Lück 2017-02-06 08:09:41 +01:00
parent 84df35d2a6
commit b8967b999a
6 changed files with 16 additions and 19 deletions

View File

@ -24,7 +24,7 @@
} }
, "require": { , "require": {
"php": ">=5.3.9" "php": ">=5.3.9"
, "react/socket": "^0.3 || ^0.4" , "react/socket": "^0.5"
, "guzzle/http": "^3.6" , "guzzle/http": "^3.6"
, "symfony/http-foundation": "^2.2|^3.0" , "symfony/http-foundation": "^2.2|^3.0"
, "symfony/routing": "^2.2|^3.0" , "symfony/routing": "^2.2|^3.0"

View File

@ -76,8 +76,7 @@ class App {
$this->httpHost = $httpHost; $this->httpHost = $httpHost;
$this->port = $port; $this->port = $port;
$socket = new Reactor($loop); $socket = new Reactor($address . ':' . $port, $loop);
$socket->listen($port, $address);
$this->routes = new RouteCollection; $this->routes = new RouteCollection;
$this->_server = new IoServer(new HttpServer(new Router(new UrlMatcher($this->routes, new RequestContext))), $socket, $loop); $this->_server = new IoServer(new HttpServer(new Router(new UrlMatcher($this->routes, new RequestContext))), $socket, $loop);
@ -85,13 +84,14 @@ class App {
$policy = new FlashPolicy; $policy = new FlashPolicy;
$policy->addAllowedAccess($httpHost, 80); $policy->addAllowedAccess($httpHost, 80);
$policy->addAllowedAccess($httpHost, $port); $policy->addAllowedAccess($httpHost, $port);
$flashSock = new Reactor($loop);
$this->flashServer = new IoServer($policy, $flashSock);
if (80 == $port) { if (80 == $port) {
$flashSock->listen(843, '0.0.0.0'); $flashUri = '0.0.0.0:843';
} else { } else {
$flashSock->listen(8843); $flashUri = 8843;
} }
$flashSock = new Reactor($flashUri, $loop);
$this->flashServer = new IoServer($policy, $flashSock);
} }
/** /**

View File

@ -66,8 +66,7 @@ class IoServer {
*/ */
public static function factory(MessageComponentInterface $component, $port = 80, $address = '0.0.0.0') { public static function factory(MessageComponentInterface $component, $port = 80, $address = '0.0.0.0') {
$loop = LoopFactory::create(); $loop = LoopFactory::create();
$socket = new Reactor($loop); $socket = new Reactor($address . ':' . $port, $loop);
$socket->listen($port, $address);
return new static($component, $socket, $loop); return new static($component, $socket, $loop);
} }
@ -94,7 +93,10 @@ class IoServer {
$conn->decor = new IoConnection($conn); $conn->decor = new IoConnection($conn);
$conn->decor->resourceId = (int)$conn->stream; $conn->decor->resourceId = (int)$conn->stream;
$conn->decor->remoteAddress = $conn->getRemoteAddress(); $conn->decor->remoteAddress = trim(
parse_url('tcp://' . $conn->getRemoteAddress(), PHP_URL_HOST),
'[]'
);
$this->app->onOpen($conn->decor); $this->app->onOpen($conn->decor);

View File

@ -6,12 +6,10 @@
$impl = sprintf('React\EventLoop\%sLoop', $argc > 2 ? $argv[2] : 'StreamSelect'); $impl = sprintf('React\EventLoop\%sLoop', $argc > 2 ? $argv[2] : 'StreamSelect');
$loop = new $impl; $loop = new $impl;
$sock = new React\Socket\Server($loop); $sock = new React\Socket\Server('0.0.0.0:' . $port, $loop);
$web = new Ratchet\WebSocket\WsServer(new Ratchet\Server\EchoServer); $web = new Ratchet\WebSocket\WsServer(new Ratchet\Server\EchoServer);
$app = new Ratchet\Http\HttpServer($web); $app = new Ratchet\Http\HttpServer($web);
$web->setEncodingChecks(false); $web->setEncodingChecks(false);
$sock->listen($port, '0.0.0.0');
$server = new Ratchet\Server\IoServer($app, $sock, $loop); $server = new Ratchet\Server\IoServer($app, $sock, $loop);
$server->run(); $server->run();

View File

@ -6,10 +6,8 @@
$impl = sprintf('React\EventLoop\%sLoop', $argc > 2 ? $argv[2] : 'StreamSelect'); $impl = sprintf('React\EventLoop\%sLoop', $argc > 2 ? $argv[2] : 'StreamSelect');
$loop = new $impl; $loop = new $impl;
$sock = new React\Socket\Server($loop); $sock = new React\Socket\Server('0.0.0.0:' . $port, $loop);
$app = new Ratchet\Http\HttpServer(new Ratchet\WebSocket\WsServer(new Ratchet\Server\EchoServer)); $app = new Ratchet\Http\HttpServer(new Ratchet\WebSocket\WsServer(new Ratchet\Server\EchoServer));
$sock->listen($port, '0.0.0.0');
$server = new Ratchet\Server\IoServer($app, $sock, $loop); $server = new Ratchet\Server\IoServer($app, $sock, $loop);
$server->run(); $server->run();

View File

@ -20,10 +20,9 @@ class IoServerTest extends \PHPUnit_Framework_TestCase {
$this->app = $this->getMock('\\Ratchet\\MessageComponentInterface'); $this->app = $this->getMock('\\Ratchet\\MessageComponentInterface');
$loop = new StreamSelectLoop; $loop = new StreamSelectLoop;
$this->reactor = new Server($loop); $this->reactor = new Server(0, $loop);
$this->reactor->listen(0);
$this->port = $this->reactor->getPort(); $this->port = parse_url('tcp://' . $this->reactor->getAddress(), PHP_URL_PORT);
$this->server = new IoServer($this->app, $this->reactor, $loop); $this->server = new IoServer($this->app, $this->reactor, $loop);
} }