Files
kiri-http-server/Broadcast/Broadcast.php
T

35 lines
614 B
PHP
Raw Normal View History

2022-01-12 11:20:33 +08:00
<?php
2022-01-12 11:29:50 +08:00
namespace Kiri\Server\Broadcast;
2022-01-12 11:20:33 +08:00
2022-01-12 14:10:32 +08:00
use Kiri;
2022-01-12 11:29:50 +08:00
use Kiri\Server\ProcessManager;
use Kiri\Server\SwooleServerInterface;
2022-01-12 11:20:33 +08:00
class Broadcast
{
/**
* @param $message
* @return void
*/
public function broadcast($message)
{
$di = Kiri::getDi();
$di->get(ProcessManager::class)->push($message);
$server = $di->get(SwooleServerInterface::class);
$total = $server->setting['worker_num'] + $server->setting['task_worker_num'];
for ($i = 0; $i < $total; $i++) {
2022-01-12 11:39:16 +08:00
if ($i == env('environmental_workerId')) {
continue;
}
2022-01-12 11:29:50 +08:00
$server->sendMessage(serialize(new Message($message)), $i);
2022-01-12 11:20:33 +08:00
}
}
}