Babble messaging server

Introduction

babble.server is the messaging service for the Babble instant messaging service for Plone. It’s however a pure Zope2 product and not dependent on Plone. It doesn’t depend on any of the babble.client frontend code and can be completely decoupled from it, by running it on a separate server.

Features

  • User accounts: users must be registered for the chat service independent of a Plone site’s users.
  • Security: messaging actions require the user to authenticate.
  • User status support: users can set their status, such as ‘busy’, ‘chatty’ or ‘invisible’. Note: the babble.client frontend doesn’t support this.
  • Web service: all public API methods return JSON strings.
  • Tests: 100% test coverage.

Setup

The chatserver is designed to be a standalone and lightweight Zope2 app. It doesn’t depend on Plone at all.

Since instant messages result in many writes to the database, it’s best to run the chat server on it’s own ZODB instance. You can do this by either dedicating a standalone Zope2 instance with its own ZODB, or by mounting a separate ZODB into your site.

In the case of using a standalone Zope2 instance, you could do the following in your buildout.cfg:

[buildout]
parts += chatserver

[chatserver]
recipe = plone.recipe.zope2instance
http-address = 8081
zeo-client = off
shared-blob = off
user = admin:admin
file-storage = filestorage/DataChat.fs
blob-storage = var/blobstorage-chat
eggs = babble.server
zcml = babble.server

Note

It’s important to include the zcml slug for babble.server.

Usage

Simply add the Chat Service in the ZMI (Zope Management Interface) by clicking on the dropdown box and choosing it from the list.

../_images/Screenshot-21.png

API

For a detailed look at the API methods with a description of each ones purpose and the JSON values it returns, please see the interfaces.py module.

Table Of Contents

Previous topic

Babble Plone chat client

Next topic

Setting up a quick chat demo

This Page