我目前正試圖通過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