だから私は同じページで2つのブラウザを実行しています。このページでは、アカウントを使用してサーバーにログインできます。
接続は Strophe で構築されます。そしてすべてが HTML と JavaScript です。
これで、チャットを構築することができました (2 つのブラウザー間で、それぞれが異なるユーザーでログインしています)。そして、これは完全に機能しています。
私が今達成したいのは、あるユーザーから別のユーザーに IQ を送信することです。どちらもステータス バーで、IQ を受け取っていることを示しています (一方は「リクエストを受け取りました」、もう一方は「結果を受け取りました」)。
ここで、次のように iq を作成します。
var iq = $iq({type: 'get', to: this.receiver}).c('query', {xmlns: 'http://jabber.org/protocol/pubsub#retrieve-subscriptions'});
XmppObject.xmpp.connection.sendIQ(iq);
これは、ボタンを押すことで呼び出すことができる関数で設定されます。リスナーは次のように構築されます。
$(XmppObject.xmpp).bind("iq", function(event, data){
addToStatus('Received an iq: \n');
handlePong(data.iq);
});
handlePong を次のように使用します。
function handlePong(msg)
{
var objMsg = $(msg);
var from = objMsg.attr('from');
var type = objMsg.attr('type');
var id = objMsg.attr('id');
var text = 'Received iq from ' + from + ' with id ' + id + ' and type ' + type + '\n\n';
addToStatus(text);
}
client1 が IQ を client2 に送信すると、次の結果が得られます。
クライアント1:
Received iq from client2@domain with id pingPong and type result
クライアント2:
彼が最初のリクエストを受け取ったことを client2 のステータスに表示する方法はありますか?