【发布时间】:2012-11-23 05:08:55
【问题描述】:
我正在尝试构建一个 Twisted/Django mashup,它可以让我通过 Django 的管理界面控制由 Twisted server 管理的各种客户端连接。意思是,我希望能够登录到 Django 的管理员并查看当前正在使用哪些协议,每个连接特定的任何详细信息(例如,如果服务器通过 IRC 连接到 freenode,它应该列出当前连接到的所有通道),并允许我通过修改或创建数据库记录来断开或连接新客户端。
最好的方法是什么?有很多关于 combining Django 和 Twisted 的帖子,但我还没有找到任何现有技术来完成我所概述的工作。我见过的所有 Twisted 示例都使用硬编码的连接参数,这让我很难想象当数据库中的记录发出信号时我将如何动态运行 reactor.connectTCP(...) 或 lostConnection(...)。
我的策略是创建一个自定义 ClientFactory,它每 N 秒轮询一次 Django/托管数据库以获取任何命令,并根据需要修改/创建/删除连接,完成后反映数据库中的新状态。
这看起来可行吗?有更好的方法吗?有谁知道任何实现类似功能的现有项目?
【问题讨论】:
标签: python django twisted twisted.web