Python(和扭曲)之外的异步消息协议兼容性

Asynchronous Messaging Protocol compatibility outside Python (and twisted)

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

Here is a list of implementations of the AMP protocol in other languages,但有些未完成,而且大多数似乎并未实际用于任何严肃的事情。

我正在查看的用例是一个完整的 Python 应用程序,目前可以在 Windows、Linux 和 Android(可能是 iOS 如果我抽出时间来建造那个)。并且可能在将来用 'native' 语言替换 View/UI 位(例如 Android 上的 Java/Swift),同时将业务位保留在 python 和扭曲。

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

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

  2. 是否有其他更普遍有用的网络协议,这些协议既实现了又相当容易在 twisted 中使用并且是非特定的(例如,jabber 实际上只用于聊天)?最好不需要像 WAMP/autobahn 这样的服务器(如果我理解正确的话),这样它就可以独立于任何可以 运行 python.

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

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

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