1

异步消息协议是 python-twisted 中的一个简单协议。我有一个相当完整的应用程序(python、twisted、kivy)使用它。客户端-服务器架构实现了一种视图-控制器类型的关系,几乎所有的业务逻辑都是服务器端的,UI 接口代码只是反映模型状态的变化(由服务器发送)并发送适当的 AMP 消息。

以下是 AMP 协议在其他语言中的实现列表,但有些看起来未完成,而且大多数似乎并没有真正用于任何严肃的事情。

我正在研究的用例是一个完全 Python 的应用程序,目前可以在 Windows、Linux 和 Android 上运行(如果我有时间构建它,可能是 iOS)。将来可能会用“本机”语言(例如 Android 上的 Java/Swift)替换 View/UI 位,同时将业务位保持在 python 和扭曲中。

所以我有两个主要问题:-

  1. 说 AMP 仅在 python-twisted 和使用它的程序中真正使用是否准确?

  2. 是否还有其他更普遍有用的网络协议,它们既可以在twisted 中实现,也很容易在twisted 中使用并且是非特定的(例如jabber 真的只用于聊天)?最好不需要像 WAMP/autobahn 这样的服务器(如果我理解正确的话),因此它可以在任何可以运行 python 的设备中自包含。

4

1 回答 1

0
  1. 这并不完全准确。Twisted 恰好用得最多。其他语言使用 AMP,只是考虑到其他更强大的选项如 AMQP(ZeroMQ、RabbitMQ、WebsphereMQ 等)的流行,AMP 并没有变得非常流行。

  2. AMP 尽可能简单。此外,您不太可能在没有服务器的情况下找到解决方案。

AMP 未锁定到 Twisted 或 Python。还有其他语言的其他实现,但就像你说的那样,有些没有以“严肃”的方式使用,并且经常无人维护。不要让这吓到你,因为协议非常简单,实施后通常没什么可做的。如果您遵循设计,您会很高兴知道实际协议没有太大变化,并且用任何语言实现都不是很困难。如果您想要更通用、跨平台并确保兼容性的东西,请考虑 HTTP 请求。

于 2016-09-29T21:43:27.973 回答