如何用XMPP实现聊天列表

2023-12-25

我有 Ejabberd 服务器和移动 iOS/Android 应用程序。

我想构建一个简单的聊天应用程序,有两个屏幕:

  • 聊天列表
  • 带有特定聊天消息的屏幕

我对聊天列表的实现有疑问。我用XEP-0313:消息存档管理 https://xmpp.org/extensions/xep-0313.html存储聊天历史记录,它非常适合我的第二个屏幕 - 包含特定聊天消息的屏幕。

但我找不到正确的方法来显示聊天列表

我有一个想法,合并所有用户的联系人(花名册)+群组房间,然后显示,但用户没有与所有联系人进行积极的聊天,所以这不是一个正确的解决方案。

在聊天列表屏幕上显示最后一条消息文本以及每个聊天也很好。 所以这是所有现代通讯工具的一个相当标准的功能。

可以用任何 XEP 来做吗?或者也许我可以以某种方式使用消息存档 XEP

这里有一些想法获取与 XEP-0313 每次对话的最后一条消息? https://stackoverflow.com/questions/35129878/get-last-message-of-each-conversation-with-xep-0313,但仍然没有答案


但我找不到正确的方法来显示聊天列表

特定帐户占用(已加入)的房间列表:

$ ejabberdctl get_user_rooms user1 localhost
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用XMPP实现聊天列表 的相关文章

  • 如何创建一个不由轮询驱动的聊天服务器?

    我创建了一个由客户端轮询驱动的简单聊天服务器 客户端每隔几秒发送一次数据请求 并收到任何新消息以及有关其对等方是否仍处于连接状态的信息 由于客户端在移动平台 iPhone 上运行 我一直在寻找摆脱轮询的方法 因为轮询会很快耗尽电池 我读到可
  • 最好的java jabber客户端库[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 您对 java jabber 库有哪些好的 坏的经历 我有过非常好的经验Smack http www igniterealtime org pr
  • XMPPFramework - 如何注册新用户帐户

    我正在尝试使用 XMPPFramework 连接到 Openfire 服务器并创建一个新的用户帐户 如果我已经以其他用户身份登录 此代码将创建一个新的用户帐户 NSXMLElement query NSXMLElement elementW
  • 使用 iOS Openfire 和 Robbie Hanson 库加入具有所有者权限的现有 XMPP MUC Room

    我正在使用以下代码加入现有的 MUC 房间 XMPPRoomMemoryStorage roomStorage XMPPRoomMemoryStorage alloc init XMPPJID roomJID XMPPJID jidWith
  • 如何断开 XMPPPY 客户端对象的连接

    使用 XMPPPY 连接到 XMPP 服务器非常简单 from xmpp client import Client as XMPPClient self xmppClient XMPPClient jabber foo com if not
  • 仅使用 GCM 开发 Android 聊天应用程序(放弃 XMPP)是否合适?

    很多应用程序 例如WhatsApp依靠GCM当设备空闲或应用程序在后台运行时向设备发送通知 这GCM消息只是告诉应用程序从服务器同步 然后XMPP用于进行实际的聊天 传递有效负载 但这是一个好的决定吗 GCM发送消息 因此 就我而言 当一个
  • XMPP:未读消息计数

    我正在尝试通过以下功能为我的网络应用程序实现聊天 当用户登录时 他应该看到许多未读消息 这既是离线消息又是 未见 我将在下一步中解释 未见 当用户位于应用程序中的任何位置但在聊天窗口上时 应该通知他有新消息 消息应标记为 未读 并且必须添加
  • 仅具有不同资源的 JID 是否可以加入同一多用户聊天室

    在xmpp中 以下2个用户可以加入多用户聊天 MUC 或订阅相同的发布 订阅节点吗 电子邮件受保护 cdn cgi l email protection user1 电子邮件受保护 cdn cgi l email protection us
  • 如何通过 XMPP (Jabber) 消息在网络上发送图像?

    For the 用于 Stack Overflow 聊天的 XMPP 界面 https meta stackexchange com questions 57316 offer an xmpp method for chat 63420 6
  • 通过xmpp在android中传输文件?

    我只是想通过 xmpp 传输文件 我正在使用 asmack lib 我在下面遇到异常 E AndroidRuntime 332 FATAL EXCEPTION main E AndroidRuntime 332 java lang Null
  • OpenFire - 使用 PubSub 的永久群聊

    首先从这个问题 Smack openfire 如何让用户永久留在群聊室 https stackoverflow com questions 19653877 asmack openfire how do i keep a user perm
  • 为什么发送电子邮件需要多个邮件服务器跃点?

    当我向某人发送电子邮件时 我认为 我的电子邮件被发送到我的家庭服务器 然后电子邮件被发送到目标服务器 最后被发送到我想要发送给的人 有时 这需要多次跳跃 这是让我困惑的一点 为什么这需要多跳 为什么邮件不能直接发送到目标服务器 例如 XMP
  • ejabberd如何编译新模块

    Here http www ejabberd im node 2872我找到了代码 erlc I ejabberd 2 1 13 lib ejabberd 2 1 13 include pa ejabberd 2 1 13 lib ejab
  • 如何在smack中设置我的名字?

    我可以使用 connection getRoster getName 来获取联系人的名册名称 但如何set当前经过身份验证的帐户的名称 使用不同的帐户登录 说真的 你的帐户名与你的身份验证绑定在一起 没有办法强迫对方为你使用特定的昵称 但如
  • 如何在 Android 的这个特定用例中实现 MQTT?

    我的用例 登录到我的应用程序的用户应该能够向在另一台 Android 设备上登录到该应用程序的自己发送消息 如果用户拥有多个设备 那么一旦他打开该消息 其他设备上的通知必然会消失 Doubts 如何跨设备向特定用户发送数据 我了解如何使用
  • 无法向 openfire 服务器发送消息

    我无法使用 SMACK API 向 openfire 服务器上的 XMPP 客户端发送消息 我不确定我哪里出错了 我在 gtalk 上测试了相同的代码 它工作正常 public class SenderTest public static
  • aSmack 即服务

    基本上我有一个运行整个项目的主类 该代码运行完美 尽管一旦应用程序失去焦点 它就会变得不活动 我想知道如何将其变成一项服务 一个会在启动时启动的 该应用程序将是一个用于通知的单向消息系统 IE 桌面客户端 gt Openfire 服务器 g
  • 拦截登录/注销ejabberd

    我想知道用户何时在自定义模块中的 ejabberd 会话中登录和注销 而不更改 ejabberd 代码 我需要它 因为我必须在用户登录时执行一些操作 并清理用户注销时执行的操作 另外 在某些情况下我需要能够注销用户 那么 有没有办法扩展某些
  • Google Talk XMPP - 什么是 X-GOOGLE-TOKEN?

    我正在尝试向 Google Talk 进行身份验证 这X OAUTH2使用 OAuth2 令牌的机制是有据可查 https developers google com talk jep extensions oauth 但什么是X GOOG
  • ejabberd:运行安装后脚本时出错

    我正在尝试安装ejabberd在我的电脑上 但我不断收到此错误 Error running Post Install Script The installation may not have completed correctly ejab

随机推荐

  • 使用 itextsharp 根据大小将 pdf 拆分为更小的 pdf

    因此 我们有一些非常低效的代码 可以根据允许的最大大小将 pdf 分成更小的块 又名 如果最大大小为 10megs 则将跳过 8 meg 文件 而将根据页数拆分 16 meg 文件 这是我继承的代码 我觉得必须有一种更有效的方法来做到这一点
  • numpy 中的数组切片

    今天我使用numpy数组进行一些计算 发现一个奇怪的问题 例如 假设我已经在Ipython中导入了numpy arange 并且我运行了一些脚本 如下所示 In 5 foo arange 10 In 8 foo1 foo arange 3
  • 如何通过 AJAX POST 将“数据”发送到 ASMX Web 服务?

    我可以成功地从我的网络服务接收值 因此在这方面脚本工作正常 不过 我现在尝试使用下面的 数据 字段将数据发送到网络服务 我不知道如何将一个简单的字符串 例如 test 发送到网络服务 这是我的网络方法期望的参数 任何帮助深表感谢 例如 fu
  • 将表单传递给服务层与原始输入

    验证表单并将其过滤后的输入传递到服务层更好 还是将原始输入传递到服务层并让服务验证输入 有或没有表单实例 更好 显然 如果是后者 控制器仍然需要访问表单 以便将其发送到视图进行渲染 如果是这样 您是否只需通过服务 service gt ge
  • bytesWritten,但其他设备从未收到 NSStreamEventHasBytesAvailable 事件

    我已经在 iPhone 和 Mac 之间建立了 Bonjour 网络 用户在 Mac 中显示的表格中选择 iPhone 的网络服务 并在两侧创建并打开一对流 iPhone 首先向 Mac 发送一个代码 整数 Mac成功接收 用户输入和处理暂
  • 将 _redirects 文件添加到 Netlify 上托管的 Vue SPA 的根路径

    我正在使用 Vue CLI 开发一个单页应用程序 并希望历史推送状态能够工作 以便获得干净的 URL 我必须遵循这个 https www netlify com docs redirects history pushstate and si
  • 类型错误:“str”不支持缓冲区接口

    我从我的原始代码发布 crystal open vmises dat r crystalincrement pickle load crystal crystaldir pickle load crystal crystalface pic
  • 将非数字替换为空字符串

    在我们的项目中快速添加需求 我们的数据库中保存电话号码的字段设置为仅允许 10 个字符 那么 如果我通过 913 444 5555 或其他任何内容 是否有一种快速方法可以通过某种特殊的替换函数运行字符串 我可以向它传递一组允许的字符 Reg
  • 如何获取 msvc 所需的运行时库的位置

    我有 CMake 的自定义包装器 它为各种平台 win32 SunOS 等 和不同的编译器执行配置 编译和创建发行版 我需要将所有需要的运行时库放入 distrib 中 nix 的 libgcc s so libstdc so 如 OS m
  • ViewController 内的 UINavigationController,视图顶部的间隙

    我正在开发一个通用应用程序 并尝试在 iPhone 和 iPad 版本之间共享尽可能多的代码 我需要使用 TabBarController 作为我的根视图控制器 虽然我想在每个选项卡中使用 SplitViewController 但 Spl
  • gitignore 根本不起作用。我无法让它忽略 .DS_Store 和 .gitignore 文件

    I have gitignored DS Store and gitignore文件 但仍然可以在 git status 中看到它们 有人可以向我解释如何确保在检查状态时我试图忽略的文件不会出现吗 git status Untracked
  • Tango Trees 有实际应用吗?

    平衡二叉搜索树 http en wikipedia org wiki Self balancing binary search tree给出一个O log n 保证搜索时间 探戈树 https en wikipedia org wiki T
  • 在Perl中,如何“跳过”某些文本并在剩余部分中进行搜索和替换? [复制]

    这个问题在这里已经有答案了 文本中多次出现pattern 在进行正则表达式查找和替换时 我想跳过文本的某些片段并替换pattern在剩下的部分 例如 在代码中 usr bin env perl use strict use warnings
  • 实时策略游戏如何在 PHP 中运行?

    一些 MMO 实时策略游戏 例如 Travian 或 oGame 是用 PHP 编码的 您能简单解释一下这样的游戏在幕后是如何运作的吗 游戏如何在没有玩家请求的情况下进行实时数据库更新 另外 当运行 Travian 等拥有 1000 名活跃
  • IE 兼容性问题:

    内的

    我有以下 HTML CSS 其中只有一个 span 标签样式为float right里面一个 h2 tag h2 H2 Test span SPAN text span h2 在 Firefox 上一切都运行良好 我怀疑其他好的浏览器 如

  • 带 2 补码的二进制减法

    我需要帮助使用 2 的表示形式进行二进制减法 并为每个数字使用 5 位 1 9 7 有溢出吗 9 01001 2 的补码 10111 和 7 00111 2 的补码 11001 现在我们需要添加 因为我们使用的是 2 的补码 10111 1
  • centos 7安装pymssql时出错

    我在虚拟机 Centos 7 中安装 pymssql 时遇到了这个问题 我安装的python版本是2 7 6 用于安装 pymssql 的命令 pip intall pymssql 错误信息 root dpitstsvr013 magend
  • 有没有办法对 Powershell cmdlet 的结果进行自动换行?

    简单 可能是愚蠢 的问题 我是 Powershell 新手 主要使用它来实例化托管库 因此当我需要使用其中的成员时 我不必编写小应用程序 其中一些库很旧 并且其方法签名又长又痛苦 在使用 new object 实例化后使用 get memb
  • 我可以使用哪些 March/mtune 选项?

    有没有办法让 gcc 输出可用的 march arch 选项 我遇到构建错误 尝试过 march x86 64 我不知道我的选择是什么 我使用的编译器是 gcc 的专有包装器 它似乎不喜欢 march skylake 标志应该是相同的 所以
  • 如何用XMPP实现聊天列表

    我有 Ejabberd 服务器和移动 iOS Android 应用程序 我想构建一个简单的聊天应用程序 有两个屏幕 聊天列表 带有特定聊天消息的屏幕 我对聊天列表的实现有疑问 我用XEP 0313 消息存档管理 https xmpp org