2016-08-19 23 views
0

我不得不在ejabberd網上出現了問題,我做一個聊天客戶端的客戶和我有這部分代碼:如何使用stanza.io客戶端和ejabberd服務器在線顯示?

client.connect(); 
client.on('session:started',() => { 
    client.getRoster() 
    client.sendPresence(); 
    onConnect(); 
}); 

當我開始會議時我把我的存在到服務器出現「在線」給其他用戶,但它不起作用,事件的名稱是錯誤的?其他功能正常工作我可以發送消息,但只能在脫機狀態。有小費嗎?提前致謝。

回答

1

確保您的其他客戶端也有sent their presence,另一個用戶爲subscribed

+0

我使用psi來調試客戶端,如果我理解正確的話,我需要訂閱以查看用戶是否在線,即使客戶端發送了在線狀態?我會嘗試訂閱以查看會發生什麼 –

+0

是的,將名單集訂閱添加到「兩個」 – Sabbir

1

你需要你的存在發送到服務器

this.client.on('session:started',() => { 
     this.client.enableCarbons(err => { 
     if (err) { 
      console.log('Server does not support carbons', err); 
     } 
    }); 
    this.client.sendPresence(); 
    }); 

在保存任何新的用戶,我們需要訂閱該用戶

this.client.subscribe(id); 

和對方用戶必須接受wheneven他們接收預訂存在類型爲訂閱

this.client.acceptSubscription(id)