【发布时间】:2013-05-14 02:51:03
【问题描述】:
我正在使用 autobahn 运行 websocket 服务器来补充我的 Django 应用程序。有时,我需要将消息从 Django 发送到 websocket 服务器,使用 websocket-client 模块可以正常工作。我很想改用 WAMP 协议,因为 RPC/PubSub API 看起来很棒,但是 python 客户端代码是作为一个扭曲的协议实现的,我不知道如何强制使用它,即像函数调用而不是来自一些外国事件循环。有什么我在文档中没有看到的,还是我的架构应该有所不同?
【问题讨论】:
-
Python 中的一切都是必要的。我认为您的意思是“阻塞”或“同步”。
-
关于架构,(至少)有 2 个选项:a)将 Autobahn 作为单独的服务器运行,并从 Django 作为客户端访问它。 b) 在 1 个进程中运行 Django 和 Autobahn(服务器)。这里有一个使用 Flask 和 Autobahn 执行 b) 的示例github.com/tavendo/AutobahnPython/blob/master/examples/…
-
@Jean-PaulCalderone:你说得对,我想要一个同步的阻塞调用。
-
@oberstet:我做 a) 并且“作为客户端从 Django 访问”部分是我感兴趣的部分。我可以使用第三方模块为普通的 websocket 服务器做这件事,但我不知道如何进行 WAMP RPC 调用,例如来自 Django 视图函数。
-
@Simon a) 也是我正在寻找的东西,但我想知道对 Twisted 进行同步调用是否不是反模式。也就是说,我还不知道如何以另一种方式做到这一点。
标签: python twisted autobahn wamp-protocol