2015-06-19 37 views
-1

我想開發一個XMPP協議來實現具有以下功能的RPC通信。 1.客戶端和服務器之間的安全認證。Wokkel(XMPP庫)是否支持以下功能?

2.Support空值(發送空值到服務器)

3,可能夠發送任意值(XML-RPC僅支持32位)

4.可通過定製發送方法的參數。 (對於如SUM(默認情況下,4,默認值)的默認值將由服務器選擇)

5.return錯誤,如果,這應該是任意對象

我想知道是否Wokkel庫支持所有這些功能或者你知道任何其他圖書館^ h支持這些功能。(如:SleekXMPP或XMPPPY)

回答

1

這個問題似乎有兩個部分:

1)是否有支持所列功能現有的XMPP擴展協議?

2)Wokkel(或可能的其他Python XMPP庫)是否支持這個?

通用RPC行爲的唯一XMPP擴展協議是XEP-0009 (Jabber-RPC)XEP-0050 (Commands)

XEP-0009使用通過XMPP發送的XML-RPC有效載荷。但正如你提到的XML-RPC不適合你的用例。

XEP-0050使用XEP-0004數據表單與服務器執行預定義的命令交換。不幸的是,我認爲它不符合你的要求#2,#3或#4。

Wokkel目前既不支持,但可以在現有的代碼之上相對容易地實現。

爲了完整起見,無論實際的RPC(子)協議如何,僅需使用XMPP作爲傳輸即可滿足您的需求#1(客戶端與服務器之間的安全認證)。這可能是因爲你還需要一些認證,但這通常是特定於應用程序的。

要求5在其措辭中似乎不完整,但XMPP支持error stanzas的應用程序特定錯誤條件。 XEP-0060(發佈 - 訂閱)廣泛使用。例如在其Payload Too Big error

Wokkel支持應用程序特定的錯誤條件。