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. .. figure:: ../images/Screenshot-2.png :align: center 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.