如何在聊天室中获取Openfire用户的在线状态

3

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

如何获取聊天室中的Openfire用户状态。

是否有相应的插件?

聊天室中的用户状态是否保存在数据库中?我该如何实现这一点?

1个回答

2
你说你会向聊天室中未加入的用户发送消息:这似乎是一种矛盾。如果用户没有加入房间,他就不在房间里,因此无法将在房间中交换的消息也发送给该用户。
关于房间存在性,你不需要插件,而是可以依靠附加到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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接