在Tornado框架之上实现的Socket.io 0.7+服务器实现
项目描述
贡献者
简介
这是基于Socket.IO实时传输库的Python服务器实现,位于Tornado框架之上。
StormIO2与Socket.IO的0.7+版本兼容,并实现了原始Socket.IO服务器软件中的大多数功能。
关键特性
支持Socket.IO 0.8协议和相关特性
完全支持Unicode
支持基于生成器的异步代码(tornado.gen API)
统计捕获(每秒数据包等)
积极维护
什么是Socket.IO?
Socket.IO旨在使实时应用在每款浏览器和移动设备上成为可能,模糊了不同传输机制之间的差异。它是一个无忧的100% JavaScript实时应用。
您可以使用它来构建推送服务、游戏等。Socket.IO将适应客户端浏览器,并使用最有效的传输协议。
入门指南
为了开始使用TornadIO2库,您需要具备一些基本的Tornado知识。如果您不知道如何使用它,请阅读Tornado教程,可以在此处找到。
如果您熟悉Tornado,请按照以下步骤添加对Socket.IO的支持到您的应用程序
从tornadio2.SocketConnection类派生并重写on_message方法(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)
启动您的应用程序
您已经拥有运行在端口8000的socket.io服务器。很简单,对吧?
启动
我们提供了一个定制的版本(毫不掩饰地从SocketTornad.IO库中借用),简化了您的TornadIO服务器的启动。
要启动它,请按照以下步骤操作(假设您之前已创建应用程序对象)
if __name__ == "__main__": socketio_server = SocketServer(application)
如果需要,SocketServer将自动启动Flash策略服务器。
如果您不想立即启动 IOLoop,请将 auto_start = False 作为构造函数选项之一传递,然后手动启动 IOLoop。
更多信息
有关更多信息,请参阅 TornadIO2 文档 和示例应用程序。
示例
致谢
Ping 示例,展示了如何使用事件在请求-响应模式下工作。它在 examples/ackping 目录中。
跨站
聊天示例,演示了跨站通信的工作方式(聊天服务器在端口 8002 上运行,而 HTTP 服务器在端口 8001 上运行)。它在 examples/crosssite 目录中。
基于事件和生成器的异步 API
示例展示了如何使用事件和基于生成器的 API 与异步代码一起工作。它在 examples/gen 目录中。
多路复用
Ping 和聊天演示通过一个连接运行。您可以在 examples/multiplexed 目录中看到它。
统计信息
TornadIO2 收集了一些计数器,您可以使用它们来排查应用程序性能问题。在 examples/stats 目录中的示例给出了如何使用这些统计信息绘制实时图表的思路。
RPC ping
Ping 通过 socket.io 事件工作。它在 examples/rpcping 目录中。
传输
具有可选传输的简单 ping/pong 示例,具有类似聊天的界面。它在 examples/transports 目录中。
项目详情
TornadIO2-0.0.4.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 140eba01ed26dc87ab323aff4638eddfc001862145bb00c35eea2d1bad7805df |
|
MD5 | e500878c082746aa436116c88b3a1cdb |
|
BLAKE2b-256 | 7590e9df6b288311cca52921ca269ad9521ad14edaccf2d903e1711918d84ea6 |