2
我正在使用XMPPFramework和openfire xmpp服務器的iOS應用程序。我差不多完成了,但我一直在讓我的iOS接收IQ請求。我能夠接收消息併發送IQ請求,但未收到IQ請求。從xmpp服務器或客戶端獲取IQ請求的完整JID
我試過從iOS客戶端和XMPP服務器發送IQ請求,但iOS應用程序忽略了IQ請求。經過長時間的研究,我縮小了我的問題範圍。事實證明,我正在向純粹的JID發送IQ請求。 Bare JID被路由到服務器,而不是直接發送到客戶端。
我找到的解決方案是獲取完整的JID並將「to」IQ消息設置爲完整的JID而不是純粹的JID。我很難理解如何獲得資源,或者將裸露的JID轉換爲完整的JID。
有人請給我一些建議嗎?我希望能夠獲得完整的JID,以便可以將IQ請求發送到我的iOS客戶端。
有沒有辦法,我可以打電話直接獲取用戶的全JID的API從我的XMPP openfire或XMPPFramework客戶端?我正在編寫一個應用程序,需要將IQ請求發送到完整的JID,但我不知道可以調用哪些函數來從用戶名/裸JID獲取完整的JID。我對此還是有點新的,我可以訪問我的服務器或我的iOS應用程序的後端。 – user1157352 2012-03-11 16:23:19
恩,所以你提出的方法是,從我的後端服務器,我告訴我的插件發送狀態訂閱,以便完整的JID從iOS應用程序返回?一旦我得到完整的JID,我可以發送iq請求?有點多餘?我的插件有完整的後端訪問,我仍然需要發送狀態訂閱請求? – user1157352 2012-03-11 16:36:28
@ user1157352如果您正在編寫客戶端,並且您的服務器組件具有固定地址,那麼您可以跳過訂閱,並讓客戶端在登錄時向組件發送定向狀態 - 從而顯示其完整的JID。存在是在XMPP中執行所需操作的標準方式。你似乎建議的選擇是編寫一個特定於服務器的插件來獲取完整的JID,但這是一個不同的問題,因爲它取決於服務器的內部API。 – MattJ 2012-03-11 16:57:05