使用 responder 实现多人在线聊天室
Posted July 05, 2019
我在之前的文章中提到 responder [1] 是个新的 Web 框架, 它的介绍是『A familiar HTTP Service Framework for Python.』
他是基于 ASGI [2] 接口做的支持异步的 Web 框架. ASGI [2] 的出现让 Python 生态实现 Websockets 技术提高了便利性。 而 responder 框架更是以便捷的 API 让开发者更快的实现 websockets 需求.
下面我做了一个基于 websockets 的聊天室, 在 responder 上开发.
比起 Django Channels [3] 大量的封装, responder 仅提供 websockets 基础功能, 所以我们要维护各个链接的 session ,这比较像 Django 维护的 Group。 每次有新的消息,我们需要对所有链接的 session 进行广播发送。
引用
[1]
responder 文档: https://python-responder.org/
[2]
ASGI 介绍: https://asgi.readthedocs.io/en/latest/
[3]
Django 实现 ASGI 网关的框架: https://channels.readthedocs.io/en/latest/