如何让 Openfire 用户出现在聊天室中

Posted

技术标签:

【中文标题】如何让 Openfire 用户出现在聊天室中【英文标题】:How to get Openfire user presence in the chat room 【发布时间】:2015-12-26 20:02:08 【问题描述】:

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

有插件吗?

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

【问题讨论】:

【参考方案1】:

你说过你会向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)

【讨论】:

以上是关于如何让 Openfire 用户出现在聊天室中的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Asmack 从 Openfire Sever 中获取所有用户创建的聊天室列表

如何使用 smack 和 openfire 获取 IOS 中每个聊天会话的最后一条消息?

如何在 Android 应用中使用 Smack 从 Openfire 服务器恢复两个用户之间的聊天记录

如何使用 Openfire 和 XMPP 在 Android 中制作聊天机器人应用程序

如何使用 XMPP 与 PHP 进行聊天过程

openfire服务器端是不是保存聊天记录