2016-08-19 84 views
0

對於持續的XMPP房間,如果他/她已斷開連接一次,讓客戶端重新回到房間的方法是什麼?在測試過程中,我發現只需將存在節回送到所述房間的JID,不會使客戶再次進入房間。只有當用戶收到邀請時才重新進入房間(因此,在我們的情況下,如果用戶斷開一次,用戶需要另一個邀請加入房間?)?加入XMPP MUC沒有邀請的房間 - ejabberd

如果是這種情況,那麼對於正在重新連接的原始房間參與者實現這種邀請的自動生成的最佳方式是什麼?

感謝。

+0

沒有邀請我不認爲這是可能的,但你可以設置一個聽衆並邀請離開的用戶回到房間。 –

+0

Thanks @MoatezBouhdid - 嘗試手動發回邀請,但離開的用戶只是不會加入! :-( – vikram17000

+0

能夠讓用戶無需邀請重新加入 - 只需重新加入正確的地方... – vikram17000

回答

0

最好的方法是使用pubsub功能和相對MultiUserChat 書籤。 如果您需要根據您的特殊需求拒絕的東西,您可以開發自定義書籤管理器。

你需要進行如下操作:

1)當創建一個持久的羣聊,書籤後先加入的羣聊。 (=>節省分貝羣聊名和密碼)

2)當recive邀請,書籤的羣聊第一加入後(=>節省分貝羣聊名和密碼)

3)在登錄/重新連接retrive書籤列表

4)的foreach書籤 - >加入(並指定監聽器等)

5)提供刪除書籤狀況(基於時間戳,會議,明確要求等)。

Official specifications

+0

非常感謝@MrPk - 是的,我試圖達到相同的目標。它是#4即使我向該用戶發送新的邀請,他/她似乎也無法從他/她的本地保存的書籤(它們只包含先前加入的房間的JID的列表(因爲你沒有存儲密碼)) – vikram17000

+0

你不需要真的再發送一個邀請,理論上你可以強制加入,就像接受了一個邀請請求一樣,當然,檢查一下MUC是否有密碼(如果如果沒有再插入它,你就無法加入)廣告房間配置尋找不尋常的參數組合我使用這種基於Openfire + Smack API的方式,但它不依賴於實現 – MrPk

+0

Thanks @MrPk - 讓我試用一些進一步的測試... – vikram17000

0

有一個proposed XEP和它在支持訂閱最新ejabberd實現。它將MUC房間暴露爲pubsub節點,以引入MUC房間用戶的概念。

+0

謝謝@Sabbir ...是的,我一直在玩新的MUC /子模塊,但也面臨同樣的問題...除非我能讓房間參與者重新加入房間,我無法找到一種利用訂閱的機制。不確定你是否有任何進一步的想法......? – vikram17000

+0

找到了解決辦法 - 我在錯誤的地方重新加入! – vikram17000

相關問題