ZMQ SOCKET_PUSH не выдвигает никаких данных при доступе из браузера, но работает нормально из CMD - PullRequest
0 голосов
/ 22 мая 2019

У меня возникла проблема при попытке использовать 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.

...