The table below shows the Bayeux implementations developed and hosted by the CometD project.
Follow the links on the tables to have more information about the implementations.
| Language | Client | Server |
|---|---|---|
| javascript | cometd-javascript | |
| java | cometd-java | cometd-java |
| perl | cometd-perl | |
| python | cometd-twisted |
| Language | Client | Server |
|---|---|---|
| groovy | Cometd Grails Plugin | |
| java | Atmosphere | |
| flex | flexcomet | |
| .net | websynchronize |
cometd-perl
quick start
building
twisted python
quick start
building
☄ cometd-js
A Bayeux implementation server will be released at some point that is written in pure JavaScript on top of Rhino. This is an effort to provide users with an all JavaScript stack that can be easily customized by anybody that understands JavaScript.
If you are interested in the effort (currently closed source) or are interested in obtaining a copy of the code, please send an email to bob.remeika@gmail.com
Cometd 2.0 is in Beta release and represents a significant refinement of the cometd codebase. As such many of the APIs have changed and much of the documentation on this site needs to be updated. This page provides notes to assist users of the CometD-2.0.beta releases until such time as the documentation has been updated.
The 2.0 java API has been decomposed into common, client and server parts, with the following new concepts:
The Message class has been split between an immutable Message API and the Message.Mutable API. The API has been carefully designed to only pass a Mutable message when it is OK for the application code to modify the method (there is no longer a need to know when to clone the message).
On the server, the ServerMessage sub-interface provides extra methods for associating messages, lazy messages and reference counting. Also the server enforced immutability deeply into the message map of maps.
The Client API has been renamed Session, to avoid confusion between server side client and client side clients. A Session has an Id (still called clientId in the protocol); a connected state and associated attributes.
All Sessions (local or remote) have a user facing API (ClientSession) and a server facing API (ServerSession) that represent both ends of a cometd connection. The server can have local connections, which use the LocalSession sub-interface of ClientSession.
The ClientSession sub-interface provides methods to subscribe and publish to channels via a SessionChannel interface.
The ServerSession sub-interface provides methods to listen to incoming messages from the session, deliver messages to the session and to look at the queue of messages waiting to be delivered.
The common Channel interface just provides the channel ID and related methods.
The SessionChannel interface is a Channel scoped to a particular ClientSession and provides methods to publish and subscribe the session to the channel. There is also a MessageListener mechanism, which differs from subscribe as it listens only to messages that happen to arrive and does not send a subscribe message to the server requesting subscription.
The ServerChannel interface provides the servers view of the channel and has methods to access all subscribers.