我将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) 无法在主进程中将数据发送到连接
不是从Master而是从Worker进程推送WebSocket消息的正确方法是什么?