[zeromq-dev] Connecting via Websockets to PHP ZeroMQ socket

Max nash12 at gmail.com
Wed Mar 28 14:45:26 CEST 2012


Hi,

has anyone had success in connecting via Javascript using Websockets
to a serverside PHP ZeroMQ socket/server?

Basically I am using Rasmus server code from
http://toys.lerdorf.com/archives/57-ZeroMQ-+-libevent-in-PHP.html
which works (I changed the socket tcp address so that outside
connections are allowed). But as soon as I connect to that socket from
my Browser using a Websocket  the PHP script tells me it received a
new connection but it doesnt receive any data.

Here is the code again for receiving data:

function print_line($fd, $events, $arg) {
    static $msgs = 1;
    echo "CALLBACK FIRED" . PHP_EOL;
    if($arg[0]->getsockopt (ZMQ::SOCKOPT_EVENTS) & ZMQ::POLL_IN) {
        echo "Got incoming data" . PHP_EOL;
        var_dump ($arg[0]->recv()); // here I get stuck, nothing is
read from the socket, the script just hangs
        $arg[0]->send("Got msg $msgs");

	if($msgs++ >= 10) event_base_loopexit($arg[1]);
    }
}

"Got incoming data" is displayed but nothing ever is received.

I poked arount a bit using ngrep and here is what is sent over the wire:

T _webbrowser_ -> _server_ [AP]
GET / HTTP/1.1.
Host: zeromq.test:5555.
... blabla...
Pragma: no-cache.
Cache-Control: no-cache.
Upgrade: websocket.
.

T _server_ -> _webbrowser_ [AP]
.~

Whats that "~" which is being returned?

I must be doing something totally wrong, so if anyone has experience
in bringing togehter websockets and PHP using ZeroMQ I would be very
interested in your thoughts. ;-)

I am using the newest stable release of ZeroMQ.



More information about the zeromq-dev mailing list