Процесс блокировки ReactPHP в плагине WordPress - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь сделать сервер websocket в моем плагине WordPress.

когда я пытаюсь получить доступ к сайту, он загружается много времени и выдает эту ошибку iis:

Процесс FastCGI превысил настроенное время ожидания запроса

код сервера веб-сокетов:

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

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

    $conn->on('data', function ($data) use ($conn) {
        $conn->close();
    });
});

$loop->run();

когда я удаляю этот код ^ он загружается быстро и без ошибок.

версия:

PHP: 7.2
ReactPHP: ^1.0 
Wordpress: 4.9.2

1 Ответ

0 голосов
/ 04 сентября 2018

Привет, ведущий ReactPHP. Запуск любого сервера сокетов, включая сервер веб-сокетов, предназначен для запуска из CLI или с использованием supervisor / systemd. Я бы предложил создать в вашем плагине такую ​​специальную команду cli, чтобы вы могли вызывать ее. Работа в стиле фанк с запросами XHR очень подвержена ошибкам и не очень стабильна. В качестве альтернативы, если вы абсолютно не можете запускать команды cli, это сервис типа pusher

...