Связь между несколькими процессами

Я пытался изучить принципы конкуренции Swoole, но через неделю я сдался. Может кто-нибудь сказать, пожалуйста, как я могу отправлять и получать сообщения между дочерними процессами?

У меня работает два процесса, например, так:

$p1 = new swoole_process(function ()
{
    $http_server = startHttp();
    $http_server->start();
});

$p2 = new swoole_process(function ()
{
    $server = startWebSockets();
    $server->start();
});

$p1->start();
$p2->start();

Где $p1 запускает сервер https с $http = new swoole_http_server("0.0.0.0", 9501);

и $p2 запускает сервер веб-сокетов с $server = new swoole_websocket_server("0.0.0.0", 9502);

Теперь мне нужно свободно отправлять / получать сообщения между $p1 и $p2. Так, например, если кто-то заходит в HTTP /post/ что-то, я могу отправить сообщение на мой сервер веб-сокетов в $p2 process.

Я попробовал Queues и Channels, но проблема в том, что как только процесс достигает строки $server->start(), он не идет дальше и застревает в своем цикле цикла? Я правильно понимаю?

Кроме того, используя Queues и Channels - кажется, мне нужно делать отметки времени с помощью sleep()? Нет сообщений, основанных на событиях?

Заранее благодарю за любые ответы.

0 ответов

Другие вопросы по тегам