Tornado-sent events

An implementation of the publish/subscribe pattern for the Tornado web server.


A simple example of using server-sent events (a.k.a. EventSource):

import random
from tornado.ioloop import IOLoop, PeriodicCallback
from tornado.web import Application
from tornadose.handlers import EventSource
from tornadose.stores import DataStore

store = DataStore()

app = Application(
    [(r'/', EventSource, {'store': store})],

loop = IOLoop.instance()
PeriodicCallback(lambda: store.set_data(random.random()), 1000).start()

To monitor the stream with curl:

$ curl http://localhost:9000

or with HTTPie:

$ http -S get localhost:9000

Additional demos can be found in the demos directory.

See also

Some other implementations of server-sent events with Tornado include:


Tornadose is freely available under the terms of the MIT license. See LICENSE for details. The source code can be found on GitHub.