0

我一直在尝试让 ReactPHP 套接字启动并运行一段时间,一旦启动,我可以在指定的端口上远程登录它,但我不能使用 websocat 或任何 js lib 通过 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
4

1 回答 1

1

对于任何为此奋斗的人。React 打开一个低级 tcp 套接字,它不能与 socket.io 类型 ws:// 连接一起使用。您将需要使用 Ratchet php 之类的包装器。

于 2020-03-27T21:31:42.400 回答