2016-09-29 82 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

看起來好像我必須爲一些開銷進行一些測試。謝謝,會讓這個坐下一段時間,但我認爲這個答案可以在那之後被接受。 –