繁体   English   中英

ZMQ pub显然无法在Windows和php上使用XAMPP

[英]ZMQ pub apparently not working with XAMPP on windows and php

这个问题太具体了,恐怕没有人能为我提供帮助...我已经从在Mac上开发转向了PC,除了我本人以外,我所有的项目都在本地计算机上工作(使用XAMPP) ZMQ插座。

ZMQ显然可以正常工作,因为当我将消息推送到pull套接字时,它会收到消息(因此pull和push似乎工作正常)。 但是,当消息发布后,似乎什么也没有发现。 起初我以为它是客户端(基于闪存),但是当我连接到在线服务器(套接字具有相同的代码)时,奇怪的是,它毫无问题地接收了已发布的消息。 我尝试编写一些zmq订阅套接字,然后使用发布套接字对其进行测试,但这似乎也没有响应。 我不止于此。

这是套接字的代码(带有虚构的端口号):

$context = new ZMQContext();
$pub = $context->getSocket(ZMQ::SOCKET_PUB);
$pub->bind("tcp://*:4321");
$pull = $context->getSocket(ZMQ::SOCKET_PULL);
$pull->bind("tcp://*:4322");

while (true) {
    $request = $pull->recv();
    $pub->send($request);
    echo PHP_EOL."PUBLISHING: $request".PHP_EOL;
}

我尝试过打开Windows防火墙上的端口,然后全部关闭防火墙,但这不是问题。 可以是ZMQ安装吗? 或PHP绑定? 当我检查phpinfo()时,它似乎已正确加载,并且与服务器上的版本相同(有效)。 我错过了一些基本的东西吗?

万一其他人遇到此类问题,只想让您知道这与使用PHP绑定的不匹配zmq版本有关。 尽管许多zmq东西都在工作,但动作脚本zmq脚本无法正确响应。 奇怪的是,phpinfo()表明我确实在使用zmq 3.2.2,但是“ php -i”显示它是3.2.0。 我不知道是否有必要将libzmq.dll和php_zmq.dll放入System32中,但是我已经安装了,我认为在安装所有东西的过程中,我的dll混合在一起了。 删除所有内容并仅从此处使用dll之后:

https://github.com/mkoppanen/php-zmq/issues/79

我能够解决问题。 希望这对其他人有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM