Usage (server and API)

Before you can use django-omnibus, you have to install the library, please see Installation for more details.

Starting the server

Because we use Tornado on the server side to maintain the connections, you have to start the omnibusd server in addition to the wsgi application:

python manage.py omnibusd

In production, you should use supervisord or any other process manager to start and stop the omnibus server.

Sending messages to a channel

To send a message to a specific channel, you can use the provided highlevel API.

Let’s start with an example:

from omnibus.api import publish

def send_hello_world():
    publish(
        'mychannel',  # the name of the channel
        'hello',  # the `type` of the message/event, clients use this name
                  # to register event handlers
        {'text': 'Hello world'},  # payload of the event, needs to be
                                  # a dict which is JSON dumpable.
        sender='server'  # sender id of the event, can be None.
    )

send_hello_world()

This would send an message with the type hello to the channel mychannel. The payload is delivered to all connections which are subscribed to the channel.

A short note about the sender id. Every connection generates an unique id upon connecting. The server-side can decide wether to send an identifier or not and it heavily depends on your application if it is needed or not.