Сообщение об ошибке Swoole 9009 от таймера процесса сервера, а не обратного вызова рабочего процесса? - PullRequest
0 голосов
/ 05 мая 2020

Я использую Swoole в качестве сервера WebSocket. Один раз в секунду мне нужно транслировать сообщение всем подключенным клиентам WS.

Наивный подход: я устанавливаю таймер сервера $server->tick() перед запуском сервера:

$this->server->tick(1000, function () {
    $message = 'hello';
    foreach ($this->server->connections as $fd) {
        $this->server->push($fd, $message);
    }
});

Получены ошибки:

[2020-05-05 12:23:56 # 21985.2] ОШИБКА swServer_tcp_send (ERRNO 9009) не может отправить данные в соединения в главном процессе

Что - это правильный способ отправки sh сообщений WebSocket не от мастера, а от рабочего процесса?

...