Ich habe PHP-Websockets mit Ratchet getestet, und alles funktionierte perfekt, bis ZMQSocket :: send plötzlich ohne ersichtlichen Grund zu hängen begann.ZMQ hängend - ZMQSocket :: senden
$context = new ZMQContext();
$socket = $context->getSocket(ZMQ::SOCKET_PUSH, 'notify');
$res = $socket->send(json_encode($entryData)); //Hangs here.
Bitte beachte, dass ich ZMQ :: MODE_NOBLOCK verwenden kann, und das wird die hängende zu stoppen, aber es das Problem nicht beheben. Der Client erhält immer noch nichts. Ich habe auch meine Box neu gestartet, wodurch das Problem nicht behoben wird.
- Ubuntu 12.04.1 LTS
- PHP Version 5.3.10 - FPM/(& CLI für den Push-Server)
- ZMQ Erweiterung Version 1.1.2
- libzmq Version 2.1.11
Update: schien ich meinen Code, um das Problem behoben haben durch Änderung:
$context = new ZMQContext();
$socket = $context->getSocket(ZMQ::SOCKET_PUSH, 'notify');
$socket->setSockOpt(ZMQ::SOCKOPT_LINGER, 30); //ADDED
$socket->connect("tcp://localhost:5557"); //ADDED
$res = $socket->send(json_encode($entryData));
Jetzt ist die Frage, warum hängt es in erster Linie, wenn es gut für etwa eine Stunde oder zwei funktionierte? Gibt es etwas, auf das ich achten muss?
Zusätzlich zu meiner Antwort scheinen Sie eine ziemlich alte 0mq-Version zu verwenden. – JSON
können Sie den Code auch für die andere Seite anzeigen? – flup
Mögliches Duplikat: http://stackoverflow.com/questions/9040208/zeromq-push-socket-causes-client-to-not-terminate-when-no-process-is-listening – flup