我目前正试图通过XMPP实现XML RPC。我使用Smack作为客户端库和Vysper作为XMPP服务器。简化的,我的设置如下所示:通过XMPP的XML RPC
[客户端1] - [服务器] - [客户端2]
我想要调用的客户端2的方法从客户端1.我创建类型集智商,以及来自[1]中描述的元素和查询内容。简单的例子:
<iq type='set' from='[email protected]' to='[email protected]' id='1'>
<query xmlns='jabber:iq:rpc'>
<methodCall>
<methodName>foo</methodName>
</methodCall>
</query>
</iq>
的问题是,从客户端1发送的智商,当我收到回一个错误的智商,并没有被提交到客户端2。
服务器必须忽略任何“到”列入名册“设置”地址,必须把任何花名册“套”为适用于:调查这个问题,我碰到这种说法在规格[2]来了发件人。 [...]
我是否正确,在这个星座Jabber-RPC不可能在两个客户端之间?或者我对Jabber-RPC有一个基本的误解?
[1] http://xmpp.org/extensions/xep-0009.html
[2] http://xmpp.org/rfcs/rfc3921.html#roster
谢谢@Lance,这有助于解决我的问题。我还有一些Vysper特有的问题需要解决(Vysper目前以自己的名义分配资源名称,而不是使用客户端提供的(https://issues.apache.org/jira/browse/VYSPER-297),所以这涉及到一些更进一步的解决方法),但基础知识正在工作:) – qqilihq
有关资源选择的提示:不要依赖它,因为它始终是决定的服务器。您可能应该使用在线状态来查看发现。 – Zash