2015-06-19 38 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支持应用程序特定的错误条件。