如何在聊天室中获得Openfire用户

时间:2015-09-29 11:05:47

标签: xmpp openfire strophe user-presence muc

我使用Openfire 3.10.2 XMPP服务器和Strophe库作为客户端。我想通过推送通知向聊天室中没有加入聊天室的所有用户发送消息。

如何在聊天室中获得Openfire用户身份

有插件吗?

聊天室中的用户是否保存在数据库中? 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

您说过要向 IN 用户发送消息 NOT JOIN 聊天室:这似乎是一个矛盾。如果用户没有加入房间,他就不会进入房间,因此无法将房间内交换的消息发送给该用户。

关于房间存在,您不需要插件,但您可以在连接到Strophe.connection的状态处理程序上进行中继。这是一个例子:

connection.addHandler(onPresence, null, "presence");

...

function onPresence(presence) {
    var msg = $(presence);
    if (msg.children('x[xmlns^="' + Strophe.NS.MUC + '"]').length > 0) {
        // muc presence
        onRoomPresence(presence);
    } else {
        // user presence
        onUserPresence(presence);
    }
    return true;
}

但是,还有一个名为MUC的Strophe插件(参见strophe.muc.js