autobahn js не подключается к wamp

361
29 сентября 2017, 19:27

Использую в проекте на стороне сервера ws wamp от Ratchet.

class WAMPServer implements WampServerInterface, MessageComponentInterface
{
    protected $clients;
    public function __construct() {
        $this->clients = new \SplObjectStorage;
    }
    function onOpen(ConnectionInterface $conn)
    {
        // Store the new connection to send messages to later
        $this->clients->attach($conn);
        echo "New connection! ({$conn->resourceId})\n";
    }
    function onClose(ConnectionInterface $conn)
    {
        // The connection is closed, remove it, as we can no longer send it messages
        $this->clients->detach($conn);
        echo "Connection {$conn->resourceId} has disconnected\n";
    }
    function onError(ConnectionInterface $conn, \Exception $e)
    {
        echo "An error has occurred: {$e->getMessage()}\n";
        $conn->close();
    }
    function onCall(ConnectionInterface $conn, $id, $topic, array $params)
    {
        $conn->callError($id, $topic, 'RPC not supported on this demo');
    }

    function onSubscribe(ConnectionInterface $conn, $topic)
    {
        $numRecv = count($this->clients) - 1;
        echo sprintf('Connection %d sending message "%s" to %d other connection%s' . "\n"
            , $conn->resourceId, $topic, $numRecv, $numRecv == 1 ? '' : 's');
        foreach ($this->clients as $client) {
            if ($conn !== $client) {
                // The sender is not the receiver, send to each client connected
                $client->send($topic);
            }
        }
    }
    function onUnSubscribe(ConnectionInterface $conn, $topic)
    {
        // TODO: Implement onUnSubscribe() method.
    }
    function onPublish(ConnectionInterface $conn, $topic, $event, array $exclude, array $eligible)
    {
        $topic->broadcast($event);
    }
    function onMessage(ConnectionInterface $from, $msg)
    {
        $numRecv = count($this->clients) - 1;
        echo sprintf('Connection %d sending message "%s" to %d other connection%s' . "\n"
            , $from->resourceId, $msg, $numRecv, $numRecv == 1 ? '' : 's');
        foreach ($this->clients as $client) {
            if ($from !== $client) {
                // The sender is not the receiver, send to each client connected
                $client->send($msg);
            }
        }
    }
}

Стартовый скрипт:

$server = IoServer::factory(
    new HttpServer(
        new WsServer(
            new \app\sockets\WAMPServer()
        )
    ),
    8080
);
$server->run();

Со стороны клиента используется старая версия autobahn js (0.8.2) для поддержки работы с wamp v1 (коим является ratchet):

 //Это работает, соединение устанавливается
 //var ws = new WebSocket('ws://127.0.0.2:8080');
//в этом случае коннект не устанавливается
ab.connect(
    'ws://127.0.0.2:8080',
    function (session) {
        session.subscribe('comments', onNewComment);
    },
    function onClose() {
        alert('Пропало соединение с сервером');
    },
    {
        'maxRetries': 100,
        'retryDelay': 5000
    }
);

При использовании autobahn вылетает следующая ошибка:

WebSocket connection to 'ws://127.0.0.2:8080/' failed: Error during WebSocket handshake: Unexpected response code: 426

Кто сталкивался с таким? С чем это может быть связано?

p.s. Какие есть еще варианты кроме ratchet (с документацией) использования wamp ws на стороне сервера?

READ ALSO
simple_html_dom.php - получить содержимое аттрибута

simple_html_dom.php - получить содержимое аттрибута

Как с помощью библиотеки simple_html_domphp получить содержимое атрибута?

198
Как это сделать?

Как это сделать?

К примеру, есть сайт: testru, он работает на машине с ip: 5

236
Помогите разобратся с отправкой формы в БД на WordPress (аналог добавления записи из админки)

Помогите разобратся с отправкой формы в БД на WordPress (аналог добавления записи из админки)

Отправка формы трех полей в базу данных: post_name, slug, post_content, но что-то не пойму, как осуществляется отправка данныхПочитал, как в wordpress отправляются...

182
Подмена и/или отмена нажатия клавиши WinAPI

Подмена и/или отмена нажатия клавиши WinAPI

Использую глобальный хук WM_KEYBOARD_LL, для отлова сообщений о нажатых клавишахКак при нажатии определённой клавиши отменить её действие, а лучше,...

212