nshah / comev

HTTP Messaging Arbitrator

This URL has Read+Write access

comev /
name age message
file .gitignore Loading commit data...
file README
file SConstruct
directory src/
README
comev
=====

Is a simple HTTP Messaging arbitrator.

s/Is/Will be/ => lots of dreams in here.
NOTE: My first C application. Use at your own risk.


comev uses the notion of subscribers and broadcasters. A subscriber may listen
to multiple channels. A broadcaster may send messages to multiple channels. The
messages use HTTP as the protocol.

comev enables the use of long-held HTTP requests on the subscriber side. This
is designed to support pushing messages to a users web browser for use with
JavaScript.

The idea is to have comev as a standalone server on a different domain. A
browser uses this in some manner (iframe, flash, ajax) via a long held request.
Applications may then push messages to named channels. The channel key is also
the security token (will probably be easily changable).

comev is designed to be single threaded asynchronous server using libev &
libebb. It does not handle scaling across process or machines. In this case,
you must make the server identification part of the key. Essentially,
partitioning and server to key affinity is not managed by comev.

comev is single threaded, so for best results, run more than one instance per
box bound to different ips/ports.


API:

GET /key/key/key
    subscribers call this to "listen"

POST /key/key/key
    broadcasters call this to "send"
    writes chunked data as it reads the POST body

HEAD /key/key/key
    will return headers with the count of # of active "listeners" for each key