Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ZeroMQ usage in web application: how frontend interacts with backend

I heard some facts about ZeroMQ, and I think it's very powerful thing. But now I try to imagine how it can be applied in web application.

Could you make an example of using ZeroMQ in web applications?

So, the first that strikes me - simple chat application. So, we need frontend and backend. I prefer using python+Tornado as backend. There is python lib for using ZeroMQ. It's clear. So, the next thing is frontend. In frontend I will use some javascript to interact with backend.

So, to do this I should use ajax calls, right? Are there some other ways to do it?

TIA!

like image 734
Dmitry Belaventsev Avatar asked Feb 05 '12 14:02

Dmitry Belaventsev


1 Answers

The easiest way to do this is to map WebSockets to ZeroMQ sockets, which is quite simple with tornado and PyZMQ's ZMQStream objects. An example of such an app is the IPython Notebook. This approach has the downside of requiring websockets, which puts a limit on what browsers you can support. Of course, you could also map ajax calls with jQuery, etc. and handle the relay with async handlers in tornado.

A more sophisticated web:ZeroMQ app is the mongrel2 webserver.

The right choice for you is just going to depend on your communication patterns.

like image 56
minrk Avatar answered Sep 28 '22 07:09

minrk