Merge branch 'refs/heads/0.2-beta' into wamp-topics

Conflicts:
	composer.lock
This commit is contained in:
Chris Boden 2012-07-18 20:34:17 -04:00
commit 9d0e6735db
6 changed files with 25 additions and 23 deletions

View File

@ -1,3 +1,6 @@
# This file is intended to ease the author's development and testing process
# Users do not need to use `make`; Ratchet does not need to be compiled
test: test:
phpunit phpunit

View File

@ -41,6 +41,8 @@ use Ratchet\ConnectionInterface;
use Ratchet\Server\IoServer; use Ratchet\Server\IoServer;
use Ratchet\WebSocket\WsServer; use Ratchet\WebSocket\WsServer;
require __DIR__ . '/vendor/autoload.php';
/** /**
* chat.php * chat.php
* Send any incoming messages to all connected clients (except sender) * Send any incoming messages to all connected clients (except sender)

14
composer.lock generated
View File

@ -3,9 +3,7 @@
"packages": [ "packages": [
{ {
"package": "evenement/evenement", "package": "evenement/evenement",
"version": "1.0.x-dev", "version": "v1.0.0"
"source-reference": "v1.0.0",
"commit-date": "1338390068"
}, },
{ {
"package": "guzzle/guzzle", "package": "guzzle/guzzle",
@ -29,15 +27,7 @@
}, },
{ {
"package": "symfony/http-foundation", "package": "symfony/http-foundation",
"version": "dev-master", "version": "v2.1.0-BETA3"
"alias-pretty-version": "2.1.x-dev",
"alias-version": "2.1.9999999.9999999-dev"
},
{
"package": "symfony/http-foundation",
"version": "dev-master",
"source-reference": "v2.1.0-BETA3",
"commit-date": "1342347231"
} }
], ],
"packages-dev": null, "packages-dev": null,

View File

@ -7,19 +7,13 @@ use React\Socket\ConnectionInterface as ReactConn;
* {@inheritdoc} * {@inheritdoc}
*/ */
class IoConnection implements ConnectionInterface { class IoConnection implements ConnectionInterface {
/**
* @var Ratchet\Server\IOServer
*/
protected $server;
/** /**
* @var React\Socket\ConnectionInterface * @var React\Socket\ConnectionInterface
*/ */
protected $conn; protected $conn;
public function __construct(ReactConn $conn, IoServer $server) { public function __construct(ReactConn $conn) {
$this->conn = $conn; $this->conn = $conn;
$this->server = $server;
} }
/** /**

View File

@ -31,9 +31,9 @@ class IoServer {
/** /**
* @param Ratchet\MessageComponentInterface The Ratchet application stack to host * @param Ratchet\MessageComponentInterface The Ratchet application stack to host
* @param React\Socket\ServerInterface The React socket server to run the Ratchet application off of * @param React\Socket\ServerInterface The React socket server to run the Ratchet application off of
* @param React\EventLoop\LoopInterface The React looper to run the Ratchet application off of * @param React\EventLoop\LoopInterface|null The React looper to run the Ratchet application off of
*/ */
public function __construct(MessageComponentInterface $app, ServerInterface $socket, LoopInterface $loop) { public function __construct(MessageComponentInterface $app, ServerInterface $socket, LoopInterface $loop = null) {
gc_enable(); gc_enable();
set_time_limit(0); set_time_limit(0);
ob_implicit_flush(); ob_implicit_flush();
@ -64,8 +64,13 @@ class IoServer {
/** /**
* Run the application by entering the event loop * Run the application by entering the event loop
* @throws RuntimeException If a loop was not previously specified
*/ */
public function run() { public function run() {
if (null === $this->loop) {
throw new \RuntimeException("A React Loop was not provided during instantiation");
}
$this->loop->run(); $this->loop->run();
} }
@ -73,7 +78,7 @@ class IoServer {
* Triggered when a new connection is received from React * Triggered when a new connection is received from React
*/ */
public function handleConnect($conn) { public function handleConnect($conn) {
$conn->decor = new IoConnection($conn, $this); $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 = $conn->getRemoteAddress();

View File

@ -20,7 +20,7 @@ class IoServerTest extends \PHPUnit_Framework_TestCase {
public function setUp() { public function setUp() {
$this->app = new Component; $this->app = new Component;
$loop = new StreamSelectLoop(0); $loop = new StreamSelectLoop;
$this->reactor = new Server($loop); $this->reactor = new Server($loop);
$this->reactor->listen(0); $this->reactor->listen(0);
@ -86,4 +86,12 @@ class IoServerTest extends \PHPUnit_Framework_TestCase {
public function testFactory() { public function testFactory() {
$this->assertInstanceOf('\\Ratchet\\Server\\IoServer', IoServer::factory($this->app, 0)); $this->assertInstanceOf('\\Ratchet\\Server\\IoServer', IoServer::factory($this->app, 0));
} }
public function testNoLoopProvidedError() {
$loop = new StreamSelectLoop;
$io = new IoServer(new Component, new Server($loop));
$this->setExpectedException('RuntimeException');
$io->run();
}
} }