У меня есть пара «подписных» процессов, которые нужно слушать от «издателей» — эти издатели приходят и уходят. Пример кода ZeroMQ имеет подписчиков, подключающихся к серверам издателя. Я хочу обратного. Я хочу, чтобы подписчик подключился к сокету, а издатели подключились.
Это мой подписчик;
<?php
require dirname(__DIR__) . '/vendor/autoload.php';
$loop = React\EventLoop\Factory::create();
class listener {
public function gotMessage( $msg ) {
print("A Message! $msg");
}
}
$listener = new listener;
$context = new React\ZMQ\Context($loop);
$subscriber = $context->getSocket(ZMQ::SOCKET_SUB);
$subscriber->bind('tcp://127.0.0.1:5555');
$subscriber->on('message', array( $listener, 'gotMessage'));
$subscriber->setSockOpt(ZMQ::SOCKOPT_SUBSCRIBE, '');
$loop->run();
Это мой издатель;
<?php
require dirname(__DIR__) . '/vendor/autoload.php';
$loop = React\EventLoop\Factory::create();
$context = new React\ZMQ\Context($loop);
$pub = $context->getSocket(ZMQ::SOCKET_PUB);
$pub->connect("tcp://127.0.0.1:5555");
$pub->send("some text");
?>
Однако слушатель не получает сообщение.
Можно ли сделать это таким образом?
Задача ещё не решена.
Других решений пока нет …