如果从浏览器访问ZMQ SOCKET_PUSH不会推送任何数据,但是可以从CMD正常工作

时间:2019-05-22 15:34:51

标签: php sockets zeromq

在Windows 10和php7.2上尝试使用React \ ZMQ时遇到问题。我进行了一些研究,并评估了如何在apache上安装ZMQ扩展的方式,但是没有错。

问题是,如果从浏览器访问套接字,则套接字不会推送任何内容,并且不会给出任何错误日志,但是从CMD可以正常工作

但是通过CLI和浏览器,相同的代码在Linux上可以正常工作。

在Linux上,仅安装php_zmq并没有改变任何东西,而Windows也是如此。

有很多类似的问题,但是并没有给我解决方案,我在php.ini中添加了php_zmq.dll,将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();
?>

我的期望是,从CMD(php pull-server.php)运行pull-server.php并从浏览器访问push.php(例如:localhost / project / push.php),然后推送一些数据发送到CMD中的pull-server.php。

0 个答案:

没有答案