2016-09-29 71 views
1

异步消息传递协议以外的兼容性是在python捻一个简单的协议。我有一个相当完整的应用程序(python,twisted,kivy)使用它。客户端 - 服务器体系结构实现了视图 - 控制器之间的关系类型,几乎所有的业务逻辑服务器端和UI界面代码都只反映模型状态(由服务器发送)的变化并发送适当的AMP消息。异步消息传递协议的Python(和扭曲)

Here is a list of implementations of the AMP protocol in other languages,但看到一些未完成的,大多数似乎并不实际被用于任何严重。

我看到的是目前适用于Windows,Linux的完全Python应用程序的使用情况,和Android(可能的iOS,如果我曾经得到全面建筑物)。并且可能在未来,用“本地”语言(例如Android上的Java/Swift)替换View/UI位,同时保持python中的业务位并扭曲。

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

  1. 它是准确的说,是AMP蟒蛇绞和那些使用它的程序中唯一真正使用呢?

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

回答

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

  2. AMP是因为它可以得到一样简单。另外,不可能找到没有服务器的解决方案。

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

+0

感谢。如果消息队列解决方案目前比较流行,那么对于新版应用程序来说,还是有一个用例,而不是更常用的吗?我确实考虑过HTTP请求,但是这似乎是相当重要的开销(因为我在移动设备上运行,这是一个相当重要的因素,我的AMP消息已经多次达到64k的限制,我已经实现了我自己的拆分和发送)。 –

+0

我认为AMP为新应用程序提供了有效的用例。它很小,定义明确,便于携带。其他解决方案(包括AMQP)具有更多开销。 –

+0

看起来好像我必须为一些开销进行一些测试。谢谢,会让这个坐下一段时间,但我认为这个答案可以在那之后被接受。 –