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

时间:2016-09-29 09:27:41

标签: twisted asynchronous-messaging-protocol

异步消息传递协议是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)。并且可能在将来用“本机”语言(例如Android上的Java / Swift)替换View / UI位,同时保持业务位在python中并扭曲。

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

  1. 是否准确地说AMP只在python-twisted中使用过?那些使用它的程序?

  2. 是否存在其他更常用的网络协议,这些协议既可以实现也可以非常容易地使用,也可以是非特定的(例如,jabber实际上只用于聊天)?最好不需要像WAMP / autobahn这样的服务器(如果我理解的话),所以它可以在任何可以运行python的设备中自包含。

1 个答案:

答案 0 :(得分:0)

  1. 这不完全准确。扭曲恰好恰好使用它。其他语言使用AMP,只是因为AMQP(ZeroMQ,RabbitMQ,WebsphereMQ等)等其他更强大的选项的普及,AMP并没有变得非常受欢迎。

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

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