2012-04-22 70 views
0

我目前正在嘗試使基於Strophe的JavaScript腳本獲取OpenFire服務器中的可用用戶列表(需要實時刷新)。我不在乎是否必須創建一個組,房間或任何它被稱爲(無論如何,服務器將只運行一小羣用戶,每個人都連接到eachother),但我希望能夠使服務器給出這樣的清單。 我該怎麼做?我讀過,我需要使用muc擴展,但我似乎無法在任何地方找到它...從OpenFire服務器獲取用戶列表

回答

3

問題解決了!我必須將我正在使用的用戶添加到一個組,並且每次用戶離開或進入房間時OpenFire通常會在大多數時間通過身體標記中包含的存在節通知房間的其他用戶。這使得Strophe無法很好地識別這些存在節,所以我不得不從Strophe連接覆蓋xmlInput函數,以獲取從服務器獲得的每一個xml節。

conn.xmlInput = onXmlInput; 
function onXmlInput(data) { 
    Strophe.forEachChild(data, "presence", function(child) { 
     var from = child.getAttribute('from'); 
     from = from.substring(0, from.indexOf('@')); 
     //'type' will contain "unavailable" when offline and no attribute 'type' when online 
     if (!child.hasAttribute('type')) { 
      addUser(from); 
     } else {      
      deleteUser(from); 
     } 
    }); 
} 
+0

嗨,你正在創建一個組,並從那你得到在線用戶,但這是有限制爲30用戶? – Tiger 2014-09-12 08:13:19

+0

我沒有任何麻煩的限制,因爲我沒有與大量的用戶工作......也許你可以發佈一個問題在一個單獨的線程關於這個;) – Gonzalo 2014-09-27 17:02:15

+0

什麼裏面的adduser和deleteuser方法? – 2016-08-17 07:31:53

相關問題