WebSocket connection failed: Unexpected response code: 404 
## Problem

I may have updated some packages on my system, but this started to happen all of a sudden. I noticed it about an hour ago. Details below the description and attempts.

I've read through issues here, and have attempted to remove `Predis` features to no avail. I've attempted to update to `dev-master`, though, no `App` class there breaking everything. I've attempted to `cURL` it:

```
curl -i -N \
-H "Connection: Upgrade" \
-H "Upgrade: websocket" \
-H "Origin: http://192.168.1.160:777" \
-H "Host: 192.168.1.160:888" \
http://192.168.1.160:888/notifications
```

Also, to no avail:

```
HTTP/1.1 404 Not Found
X-Powered-By: Ratchet/0.3-beta
```

Out of clues...

---
### Full message from Chrome's console:

```
WebSocket connection to 'ws://192.168.1.160:888/notifications' failed: Unexpected response code: 404 
```
### composer.json:

``` json
{
    "minimum-stability": "dev",
    "autoload": {
        "psr-0": {
            "Stone\\Notifications": "src"
        }
    },
    "require": {
        "ext-phpiredis": "*",
        "predis/predis-async": "dev-master",
        "cboden/Ratchet": "0.3.*@dev",
        "symfony/console": "2.3.*"
    }
}
```
### server.php:

``` php
use Stone\Notifications\Application;

$port = 888;

$host = gethostname();
$ip = gethostbyname($host);

// Include composer's autoload.
require __DIR__ . '/vendor/autoload.php';

$loop = React\EventLoop\Factory::create();
$app = new Application();

// Create a Redis async client.
$client = new Predis\Async\Client('tcp://127.0.0.1:6379', $loop);

// Connect to appliaction.
$client->connect(array($app, 'initialize'));

$ws = new Ratchet\App($ip, $port, $address = '0.0.0.0', $loop);

$ws->route('/notifications', $app, array('*'));

$ws->run();
```
### src/Stone/Notifications/Application.php:

``` php
<?php namespace Stone\Notifications;

use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
use SplObjectStorage;
use Exception;

class Application implements MessageComponentInterface
{
    protected $clients;

    protected $redis;

    protected $log;

    public function __construct()
    {
        $this->clients = new SplObjectStorage;


        $this->log = fopen('/srv/stone/app/storage/logs/notifications.log', 'a');

        $this->log('Started Stone Notification server.');
    }

    public function initialize($client)
    {
        $this->redis = $client;
        $this->log('Connected to Redis, now listening for incoming messages...');

        // Subscribe to Redis
        $pubsub = $this->redis->pubsub('stone-notifications', array($this, 'pubsub'));
    }

    public function onOpen(ConnectionInterface $conn)
    {
        $this->log('Client '. $conn->remoteAddress .' connected.');

        $this->clients->attach($conn);
    }

    public function onClose(ConnectionInterface $conn)
    {
        $this->log('Client '. $conn->remoteAddress .' disconnected.');

        $this->clients->detach($conn);
    }

    public function pubsub($event, $pubsub)
    {
        // $this->log('Redis: ' . json_encode($event));

        if ($event->channel === 'stone-notifications')
        {
            foreach ($this->clients as $client)
            {
                $client->send($event->payload);
            }
        }
    }

    public function onMessage(ConnectionInterface $conn, $message)
    {
        $this->log('Client ' . $conn->remoteAddress . ' sent message, ignoring, disconnecting.');
        $from->close();
        return false;
    }

    public function onError(ConnectionInterface $conn, Exception $e)
    {
        $this->log('Error: ' . $e->getMessage());

        $conn->close();
    }

    /**
     * Prints message by prepending date
     * @param  string $message
     * @return void
     */
    private function log($message)
    {
        fwrite($this->log, '[' . date('r') . '] ' . $message . PHP_EOL);
        echo '[' . date('r') . '] ' . $message . PHP_EOL;
    }
}
```
### Output from running it:

```
$ php server.php
[Wed, 02 Oct 2013 18:03:28 +0300] Started Stone Notification server.
XDebug extension detected. Remember to disable this if performance testing or going live!
[Wed, 02 Oct 2013 18:03:28 +0300] Connected to Redis, now listening for incoming messages...
```
