Как передать сообщение с сервера на несколько клиентов, используя храповик php, чтобы преодолеть снижение производительности
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),
8080,
'0.0.0.0'
);
$currentTime = new DateTime(date('Y-m-d H:i:s'));
$server->loop->addPeriodicTimer(1,
function ($timer) use ($server, &$currentTime) {
$currentTime = $currentTime->modify('+01 seconds');
$clients = Chat::$cl;
foreach ($clients as $key => $client) {
$client->send(json_encode($currentTime->format('H:i:s')));
}
});
$server->run();
Я подозреваю, что именно здесь я делаю это неправильно:
$clients = Chat::$cl;
foreach ($clients as $key => $client) {
$client->send(json_encode($currentTime->format('H:i:s')));
}
Видите ли, я каждую секунду перебираю все подключенные клиенты, чтобы передать сообщение из файла сервера.
Я думаю, что это является причиной снижения производительности моего сайта. Как передать сообщение каждому подключенному клиенту, не проходя таким образом.
Это многопоточность или есть лучший способ открыть соединение с несколькими клиентами с помощью веб-сокета Rathet?
Почему-то мне все еще нужно передавать сообщение каждую секунду.