skip to navigation
skip to content

Not Logged In

djazator 0.2.5

A simple django plugin for sending push notifications from django server to sockjs clients


`djazator`_ is a simple django plugin for sending push messages from
django server to sockjs clients. It internally uses `zeromq`_ and
`sockjs-tornado`_. djazator can send push notifications to all sockjs
clients and to subset of this clients.


1. `pyzmq`_>=2.0
2. `sockjs-tornado`_>=0.0.5
3. `django`_>=1.4


Install ``djazator`` with your favorite Python package manager:


   pip install djazator

Add ``djazator`` to your ``INSTALLED_APPS`` in ````



Define ``DJAZATOR_MQ_SOCKET`` in ````


   DJAZATOR_MQ_SOCKET = 'tcp://'


Run zeromq forwarder device


   djazator-mq --sub=tcp:// --pub=tcp://

Run sockjs-tornado server


   djazator-server --port=8080 --mq_socket=tcp:// --route=/sockjs --address=''

Alternatively, if you don't need multiple tornado instances support, you can entirely omit djazator-mq and should pass -S/--single argument to djazator-server


   djazator-server --single --port=8080 --mq_socket=tcp:// --route=/sockjs --address=''

Append sockjs client library to your page


       <script src="">

Open page in browser and connect to sockjs-tornado server


   conn = new SockJS('http://localhost:8080/sockjs')

Define a callback for incoming messages


   conn.onmessage = function (e){ console.log(; };

Send a message from django


   from import notify_all
   notify_all({'msg': u'Hi all!'})

and you will see it in js console


       Object {msg: "Hi all!"}

Advanced notifications:

You can send notifications to subset of users.


    from import notify
    from djazator.utils import tokenize
    from django.contrib.auth.models import User
    user = User.objects.get(email='')
    notify({'msg': u'Hi, %s!' % user.username}, users=[user])
    token = tokenize(user)
    notify({'msg': u'Hi user with token %s !' % token}, users=[user])

To get this messages you need to subscribe by token


    var token = {% djazator_token %};
    SockJS.prototype.emit = function (name, data) { // wrapper around SockJS.send for djazator's protocol support
        var meta_dict = {
    conn = new SockJS('http://localhost:8080/sockjs')
    conn.emit('subscribe', {'token': token});
    conn.onmessage = function (e){ console.log(; };

``{% djazator_token %}`` is nothing more than a wrapper around
``djazator.utils.tokenize`` that returns signed with
standart django singing mechanism. You can configure you own salt by setting
``DJAZATOR_SALT`` in ````. If you need more security,
you can provide your own tokenization function. It should accept django User
 object and return token. Add path to this function in .




1. djazator serializes datetime objects with ISO 8601 format. You can parse it on client with `moment.js`_ .
2. djazator server can handle client's messages constructed only in some specific way and can't be used for client to client communications.


1. `Hipache`_

.. _djazator:
.. _zeromq:
.. _moment.js:
.. _sockjs-tornado:
.. _pyzmq:
.. _django:
.. _Hipache:
File Type Py Version Uploaded on Size
djazator-0.2.5.tar.gz (md5) Source 2014-01-02 6KB
  • Downloads (All Versions):
  • 9 downloads in the last day
  • 171 downloads in the last week
  • 725 downloads in the last month