Skip to main content

Integrate hookbox with Django.

Project description

IMPORTANT NOTE

Although hookbox is a very quick and easy way to experiment with COMET, it is not suitable for production use at this time. Unfortunately, at the time of writing, the hookbox project looks moribund. Hopefully this situation changes soon, but for the meantime this module should only be used for quick prototypes and experimentation.

Requirements

  • Django 1.3+

  • Hookbox 0.3.3

It should work with Django 1.2, however it has not been tested. If you try it please let me know how you get on.

Other versions of hookbox (including the latest dev versions) probably will not work, as things like command-line option names and URLs seem to change from frequently. On the other hand, any problems should be easy to fix.

Installation

Install the usual way, e.g.:

pip install django-hookbox

Add to INSTALLED_APPS in settings.py:

INSTALLED_APPS = (
    ...
    'django_hookbox',
    ...
)

Add to your urls.py:

urlpatterns = patterns('',
    ...
    (r'^hookbox/', include('djhookbox.urls')),
    ...

CONFIGURATION

At a minimum you will need to register a channel handler to allow channel creation. For example:

class HookboxHandler(object):
    def create(self, user, channel):
        if channel.startswith('/good/'):
            return {
              'history_size': 1,
              'reflective':   False,
              'presenceful':  False,
              'moderated':    True,
            }

djhookbox.register_channel_handler(HookboxHandler())

The first time a user subscribes to a channel it is implicitly created. If no registered channel handler returns an options dict this will fail.

To only allow authorised users to connect and/or subscribe listen for connect/subscribe signals and raise an exception if not allowed.

You will probably also want to configure various hookbox options in settings.py. The available options are:

HOOKBOX_INTERFACE: The interface the hookbox server listens on.
HOOKBOX_PORT: The port the hookbox server listens on.
HOOKBOX_CBHOST: The host the Django server listens on.
HOOKBOX_CBPORT: The port the Django server listens on.
HOOKBOX_CBPATH: The path prefix the webhook views are located under.
HOOKBOX_WEBHOOK_SECRET: A secret token passed by hookbox to webhooks.
HOOKBOX_REST_SECRET: A secret token passed by Django to hookbox.
HOOKBOX_ADMIN_PASSWORD: The hookbox administrator password.

USAGE

A management command is provided to run the hookbox server. See ./manage.py help runhookbox for the available options. By default options from settings.py (see above) will be used.

To publish to a channel from with Django call, e.g.:

djhookbox.publish('/some-channel/', {'data': 'some-data'})

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-hookbox-0.1.tar.gz (8.3 kB view details)

Uploaded Source

File details

Details for the file django-hookbox-0.1.tar.gz.

File metadata

File hashes

Hashes for django-hookbox-0.1.tar.gz
Algorithm Hash digest
SHA256 91ef827e63e3222a6d392746b63e45fb123db999d9a2e9861cabbe0e22672473
MD5 ba92e83c929fd606a5bcfe8fb01abad1
BLAKE2b-256 cabce25c06d21fc0d84c5b0a7bd8f69eca3e9c7e7817419fc17a6b3763b002f4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page