この質問は非常に具体的なので、誰も私を助けることができないのではないかと心配しています... Mac での開発から PC に切り替え、私のプロジェクトとは別に、ローカル マシン (XAMPP を使用) ですべてのプロジェクトを実行しています。 ZMQ ソケット。
メッセージをプル ソケットにプッシュすると、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() をチェックすると正しくロードされたようで、サーバーと同じバージョンです (動作します)。私が見逃した基本的なものはありますか?