跳转到主要内容

在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的支持到您的应用程序

  1. 从tornadio2.SocketConnection类派生并重写on_message方法(on_open/on_close是可选的)

    class MyConnection(tornadio2.SocketConnection):
        def on_message(self, message):
            pass
  2. 为您的连接创建TornadIO2服务器

    MyRouter = tornadio2.TornadioRouter(MyConnection)
  3. 将您的处理程序路由添加到Tornado应用程序中

    application = tornado.web.Application(
        MyRouter.urls,
        socket_io_port = 8000)
  4. 启动您的应用程序

  5. 您已经拥有运行在端口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 (21.6 kB 查看哈希)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面