У меня возникла проблема при попытке использовать React \ ZMQ на windows 10 и php7.2. Я провожу некоторые исследования и оцениваю способ установки расширения ZMQ на apache, но в этом нет ничего плохого.
Проблема в том, что сокет ничего не выдвигает, если к нему обращаются из браузера, и не выдает никакого журнала ошибок, но работает нормально из CMD
, но тот же код работает в Linux, хотя CLI и браузер.
В Linux я ничего не менял, просто установил php_zmq и Windows.
есть много похожих вопросов, но это не дает мне решения, я добавил php_zmq.dll
в php.ini, сохранил php_zmq.dll
в php/ext
каталоге и сохранил libzmq.dll
в php
каталог и я проверил, чтобы phpinfo и расширение ZMQ загружалось гладко.
вот код
//push.php
<?php
require './vendor/autoload.php';
$loop = React\EventLoop\Factory::create();
$context = new React\ZMQ\Context($loop);
$push = $context->getSocket(ZMQ::SOCKET_PUSH);
$status = $push->connect('tcp://127.0.0.1:5555');
$push->send("test");
$loop->run();
?>
//pull-server.php
<?php
require 'vendor/autoload.php';
$loop = React\EventLoop\Factory::create();
$context = new React\ZMQ\Context($loop);
$pull = $context->getSocket(ZMQ::SOCKET_PULL);
$pull->bind('tcp://127.0.0.1:5555');
$pull->on('error', function ($e) {
var_dump($e->getMessage());
});
$pull->on('message', function ($msg) {
echo "Received: $msg\n";
});
$loop->run();
?>
то, что я ожидал от этого, - это когда pull-server.php запускается из CMD (php pull-server.php), а из браузера вызывается push.php (например, localhost / project / push.php), а затем нажимает на некоторые данные для pull-server.php в CMD.