跳转到主要内容

tornado的事件源处理器

项目描述

tornado-eventsource

Build Status

一个简单的tornado事件源处理器。内置测试客户端。

MDN上的EventSource

如何使用

安装它(当然了!)

pip install tornado_eventsource

客户端/服务器示例

在你的处理器中

class MyAmazingHandler(EventSourceHandler):
    def check_connection(self):
        if youDontFitMyCondition:
            self.error(403, 'forbidden')
            return False
        return True

    def open(self):
        self.write_message('doge_source', 'much connection')

    def close(self):
        # Cleanup after close

使用客户端进行测试

from tornado_eventsource.event_source_client import eventsource_connect

...

def test_get_message_on_open(self):
    event_source = eventsource_connect(url=self.get_url('/'), callback=self.stop)
    self.wait()
    event = event_source.result().events[0]
    self.assertEqual(event.name, 'doge_source')
    self.assertEqual(event.data, 'much connection')

另一个示例

import uuid

import tornado.ioloop
import tornado.web
import tornado_eventsource.handler


class MainHandler(tornado_eventsource.handler.EventSourceHandler):
    def open(self):
        self.heart_beat = tornado.ioloop.PeriodicCallback(self._simple_callback, 5000)
        self.heart_beat.start()
        self.write_message(msg="Wow much nameless", evt_id=uuid.uuid4())
        print('Connection open')

    def close(self):
        print('Connection closed')

    def _simple_callback(self):
        self.write_message(name="doge", msg="Wow much alive\nSuch message", evt_id=uuid.uuid4())
        self.write_message(msg="Wow much nameless", evt_id=uuid.uuid4())

application = tornado.web.Application([
    (r"/", MainHandler),
], debug=True)

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

贡献

make setup

change things

make test

pull request ;)

许可证

MIT许可证 (MIT)

版权所有 (c) 2014 Guilherme Souza,又名:Galinho

特此授予任何人免费获取此软件及其相关文档文件(“软件”)的副本的权限,不受任何限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供的人以这种方式使用,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任承担责任,无论该责任是因合同、侵权或其他方式引起的,与软件或其使用或其它交易有关。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

tornado_eventsource-3.0.0.tar.gz (5.7 kB 查看哈希值)

上传时间

支持