Используйте React PHP Socket, чтобы открыть сокет ws: // - PullRequest
0 голосов
/ 27 марта 2020

Я пытался настроить и запустить сокет React PHP на некоторое время, после этого я могу подключить lnet к нему через указанный порт, но я не могу использовать websocat или любую библиотеку js для подключиться через протокол ws: // Любая помощь будет оценена.

    $loop = React\EventLoop\Factory::create();
    $socket = new React\Socket\Server('127.0.0.1:8000', $loop);

    $socket->on('connection', function(ConnectionInterface $connection) use ($colors) {
        $connection->write("Hello " . $connection->getRemoteAddress() . "!\n");

        $connection->on('data', function($data) use ($connection){
            $connection->write('received: ' . strtoupper($data));
        });
    });

    echo "Listening on {$socket->getAddress()}\n";

    $loop->run();

Сервер:

Listening on tcp://127.0.0.1:8000

Клиент:

websocat ws://localhost:8000
websocat: WebSocketError: HTTP failure
websocat: error running

1 Ответ

0 голосов
/ 28 марта 2020

Для всех, кто борется с этим. React открывает низкоуровневый tcp-сокет, который нельзя использовать с socket.io типа ws: // connections. Вам нужно будет использовать обертку типа Ratchet php.

...