这个问题太具体了,恐怕没人能帮助我......我已经从在 Mac 上开发切换到在 PC 上开发,并且我的所有项目都在本地机器上工作(使用 XAMPP)除了我的ZMQ 套接字。
ZMQ 显然正在工作,因为当我将消息推送到拉式套接字时,它会接收到消息(所以拉和推似乎工作正常)。但是,当消息随后发布时,似乎没有任何反应。起初我以为它是客户端(基于闪存),但奇怪的是,当我连接到在线服务器(具有相同的套接字代码)时,它可以毫无问题地接收发布的消息。我尝试编写一个小 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() 时,它似乎已正确加载,并且它与服务器上的版本相同(有效)。我错过了什么基本的东西吗?