Javascript 在线和离线用户实时使用strophe.js

Javascript 在线和离线用户实时使用strophe.js,javascript,xmpp,openfire,strophe,Javascript,Xmpp,Openfire,Strophe,我使用下面的代码使用strophe.jsjavascript客户端库连接到xmpp服务器(openfire) var BOSH_SERVICE = 'http://127.0.0.1:7070/http-bind/'; connection = new Strophe.Connection(BOSH_SERVICE); connection.connect("jid", "password", onConnect

我使用下面的代码使用strophe.jsjavascript客户端库连接到xmpp服务器(openfire

var BOSH_SERVICE = 'http://127.0.0.1:7070/http-bind/';
 connection = new Strophe.Connection(BOSH_SERVICE);

  connection.connect("jid",
                   "password",
                   onConnect);
和回调函数(onConnect),如下所示:

function onConnect(status)
{
    if (status == Strophe.Status.CONNECTING) {
    log('Strophe is connecting.');
    } else if (status == Strophe.Status.CONNFAIL) {
    log('Strophe failed to connect.');
    $('#connect').get(0).value = 'connect';
    } else if (status == Strophe.Status.DISCONNECTING) {
    log('Strophe is disconnecting.');
    } else if (status == Strophe.Status.DISCONNECTED) {
    log('Strophe is disconnected.');
    $('#connect').get(0).value = 'connect';
    } else if (status == Strophe.Status.CONNECTED) {
    log('Strophe is connected.');
    log('ECHOBOT: Send a message to ' + connection.jid + 
        ' to talk to me.');

    connection.addHandler(onMessage, null, 'message', null, null,  null); 
    connection.send($pres().tree());
    console.log($pres().tree());

    }
}
我使用此代码成功连接到服务器,在此之前没有问题

问题:实时更新状态为的用户列表

让我解释一下我的问题:

我想显示实时更新的在线和离线用户列表。(类似于显示聊天应用。)

例如,假设有3个用户A、B和C,并且都在线(已登录)

现在假设用户A断开连接或脱机,那么用户B、C如何得到用户A状态的通知?。并在用户B和用户C列表中将用户A的状态更改为脱机而不刷新

strophe.js中是否有任何方法会在有人连接或断开连接时自动调用。还是我需要自己写


我不确定,但花名册中有一些内容。

您可以使用此Strophe API为您的好友订阅状态:

connection.send($pres({
  to: jid,     // buddy jid
  type: "subscribe"
}));
它实现了XMPP规范(有关详细信息,请参阅)。 好友可以接受订阅并回复以下内容:

connection.send($pres({
  to: from,  // jid of subscriber
  type: "subscribed"
}));
您可以在Plunker上查看基于XMPP(使用Strophe.js)的web客户端示例:


感谢您的回复。我只是将订阅插件添加到OpenFire并设置自动订阅。现在它工作的很好。。。你的回答也是我想知道的。谢谢,伙计。是否可以使用strophe.js或openfire的任何其他库创建视频聊天?我只能建议您检查WebRTC功能,这些功能使web浏览器能够在Peers之间进行实时音频/视频通信,因此您可以使用XMPP作为控制实时通信的信令方式(搜索XMPP铃声、strophe铃声等)谢谢让我查一查。。我认为在openfire中,通过插件实现翻转是可能的。