托纳迪奥叉子2 0.0.4(谢尔盖S.科瓦尔)。Socket.IO 0.7+服务器在Tornado框架上的实现
HiCTornadIO2的Python项目详细描述
托纳迪奥叉子2 0.0.4(谢尔盖S.科瓦尔)
不幸的是,socket.io 0.8分支被放弃了,有大量的错误,没有得到修复。我建议换一种 选项,例如sockjs<;http://github.com/sockjs/>;。这里还有Sockjs Tornado<;http://github.com/mrjoes/Sockjs Tornado/>;。 我不打算再支持tornadio2了,假设父库不再被维护。
如果你还想用python来尝试socket.io 0.8.x,tornadio2是相当稳定的,并在生产中使用。
简介
这是python服务器实现的Socket.IO实时 位于Tornado框架顶部的传输库。
tornadio2与0.7+版本的socket.io和implements兼容 原始socket.io服务器软件中的大部分功能。
主要功能:
- 支持Socket.IO 0.8协议和相关功能
- 完全支持Unicode
- 支持基于生成器的异步代码(tornado.gen api)
- 统计数据捕获(每秒数据包等)
什么是socket.io?
socket.io旨在使每个浏览器和移动设备中的实时应用成为可能,模糊了不同传输机制之间的差异。这是免费的实时100%的javascript。
您可以使用它来构建推送服务、游戏等。Socket.IO将适应客户端浏览器,并将使用最有效的传输 协议可用。
开始
为了开始使用TornadIO2图书馆,你必须有一些基本的龙卷风 知识。如果你不知道如何使用它,请阅读龙卷风教程,可以找到 here。
如果您熟悉Tornado,请执行以下操作以向应用程序添加对Socket.IO的支持:
派生自tornadio2.socketconnection类并重写on_消息方法(on_open/on_close是可选的):
class MyConnection(tornadio2.SocketConnection): def on_message(self, message): pass
为您的连接创建tornadio2服务器:
MyRouter = tornadio2.TornadioRouter(MyConnection)
将处理程序路由添加到Tornado应用程序:
application = tornado.web.Application( MyRouter.urls, socket_io_port = 8000)
启动应用程序
您的socket.io服务器在端口8000上运行。很简单,对吧?
启动
我们提供了HttpServer的定制版本(不知羞耻地从sockettornad.io库中借用),其中 简化了tornadio服务器的启动。
要启动它,请执行以下操作(假设您以前创建过应用程序对象):
if __name__ == "__main__": socketio_server = SocketServer(application)
如果需要,socketserver将自动启动flash策略服务器。
如果不想立即启动IOLoop,请将auto_start = False作为构造函数选项之一传递,然后 然后手动启动ioloop。
更多信息
有关更多信息,请检查TornadIO2 documentation和示例应用程序。
示例
确认
Ping示例,显示如何使用事件在请求-响应模式下工作它在examples/ackping目录中。
跨站点
演示跨站点通信工作原理的聊天示例 (聊天服务器在端口8002上运行,而http服务器在端口8001上运行)。它在examples/crosssite目录中
基于事件和生成器的异步API
演示如何使用事件和基于生成器的API处理异步代码的示例。它在examples/gen目录中。
多路复用
Ping和聊天演示通过一个连接运行。您可以在examples/multiplexed目录中看到它
统计信息
tornadio2收集一些计数器,可用于解决应用程序性能问题。 examples/stats目录中的示例介绍了如何可以使用这些统计信息绘制实时图形。
rpc ping
通过socket.io事件工作的Ping它在examples/rpcping目录中。
运输
简单的乒乓球/乒乓球例子,具有可选择传输的聊天界面。它在 examples/transports目录。