2016-08-19 3 views
0

私は顧客のためのチャットクライアントをやっていると私は、コードのこの部分を持って、ejabberdオンラインで表示される問題を抱えている:stanza.ioクライアントとejabberdサーバーを使用してオンラインで表示する方法は?

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

私はセッションがイベントを始めたとき、私は私の存在を送ります他のユーザーに「オンライン」で表示されるようにサーバーに送信しても動作しませんが、イベントの名前は間違っていますか?他の機能はうまく動作しますが、メッセージを送信できるのはオフライン状態だけです。任意のヒント?前もって感謝します。

答えて

1

他のクライアントもsent their presenceで、他のユーザーがsubscribedであることを確認してください。

+0

Im 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) 
関連する問題