XMPP:未读消息计数

2024-03-25

我正在尝试通过以下功能为我的网络应用程序实现聊天:

  • 当用户登录时,他应该看到许多未读消息(这既是离线消息又是“未见”,我将在下一步中解释“未见”)。
  • 当用户位于应用程序中的任何位置但在聊天窗口上时,应该通知他有新消息。消息应标记为“未读”,并且必须添加到未读消息的计数中。

使用 XEP-0013:灵活的离线消息检索可以很容易地实现第一点。所以我可以检索离线消息,当我确定用户已经看到它们时 - 我将它们从未读列表中删除。但问题是:如何对“看不见的”消息实现同样的效果?

简而言之,我需要的是:任何消息都应标记为离线,除非用户看到它并且通过明确请求将其从列表中删除。

我可以使用 XMPP 实现这一目标吗?我该如何做到这一点?

提前致谢。


您要做的就是在您的帐户中存储一些看不见的东西。我认为您不需要灵活的离线检索,因为当您连接时,消息将变得看不见。因此,您只需处理一种情况:Unseen。

我将从 ejabberd 的角度回答,作为开发人员之一,我更了解:我会使用私有存储来存储您当前未见过的计数和对话的状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XMPP:未读消息计数 的相关文章

  • FCM 服务不可用 nack

    我有一个 python3 程序 可以成功连接到 FCM XMPP 测试服务器 但是 发送 JSON 后 它返回给我一个SERVICE UNAVAILABLE每次nack消息 上周的同一段代码运行得非常好 The 文档 https fireb
  • XMPP MUC 加入时返回错误代码 404,但它存在

    希望有人可以帮助我理解我在尝试加入已存在的公共 MUC 房间时收到的错误代码 404 这是 XMPP 序列 对房间进行IQ查询
  • 如何实现XMPP发送推送通知

    我想使用 XMPP 以便我的应用程序能够向 Android 手机 1 5 及更高版本 发送更新 我非常想使用 XMPP 向手机发送推送通知 我将如何实现这一目标 目前 我的 Web 应用程序正在 apache tomact 上运行 带有许多
  • XMPP 带有支持 X-FACEBOOK-PLATFORM 的 Java Asmack 库

    我正在尝试使用 Smack 库在 Android 上进行 Facebook 聊天 我读过Chat API http developers facebook com docs chat 来自 Facebook 但我不明白如何使用这个库向 Fa
  • 将 aSmack 0.8.3 用于 XMPP 聊天应用程序时出现 NoSuchAlgorithmException

    我已经包含了 logcat 输出 请帮我解决这个问题 08 09 11 06 32 762 警告 NetworkManagementSocketTagger 883 setKernelCountSet 10012 0 失败 错误号 2 08
  • 如何断开 XMPPPY 客户端对象的连接

    使用 XMPPPY 连接到 XMPP 服务器非常简单 from xmpp client import Client as XMPPClient self xmppClient XMPPClient jabber foo com if not
  • XMPP - 名册订阅说明

    假设我的 Jabber 服务器上有 2 个用户 Alice 和 Bob 添加到名册中并订阅为both 我需要执行以下步骤 Alice 向 Bob 发送订阅请求 当 Bob 收到请求时 他会批准该请求 Bob 可能也对 Alice 的存在感兴
  • 处理基于 Strope.js 的聊天应用程序中的状态

    是否有任何现有解决方案可以为基于 Strope js 的聊天应用程序提供在线状态处理 我有一个基于 Strope js 的简单聊天应用程序 我想仅显示在线并动态更改列表的用户 我想知道是否有任何现有的解决方案 可能是 Strope 插件 可
  • 仅具有不同资源的 JID 是否可以加入同一多用户聊天室

    在xmpp中 以下2个用户可以加入多用户聊天 MUC 或订阅相同的发布 订阅节点吗 电子邮件受保护 cdn cgi l email protection user1 电子邮件受保护 cdn cgi l email protection us
  • `ejabberdctl start` 导致“内核 pid 终止”错误 - 我该怎么办?

    我用谷歌搜索了三个小时但没有结果 我有一个 ejabberd 安装 但不是使用 apt 安装的 它是从源代码安装的 其中没有名为 ejabberd 的程序 启动和停止 一切都是通过 ejabberdctl 进行的 它完美地运行了一个月 突然
  • ejabberd MAM 不适用于 MUC

    xep 0313 适用于名册 但不适用于房间聊天 我可以获取名册的存档消息 但无法获取房间的存档消息 为什么
  • Android GCM:了解 XMPP

    我正在尝试使用应用程序在我的 GCM 中实现 XMPP 协议 但即使经过广泛搜索 我也不理解其背后的概念 另外 也许我并不真的需要 XMPP 来完成我想用我的应用程序做的事情 但我喜欢学习东西 让我们以 HTTP 为例 我的应用程序将 he
  • XMPP 服务器的 libxml2 与 expat

    我正在尝试从头开始创建一个 XMPP 库 以及后来的服务器 Go http golang org 尽管语言本身无关紧要 作为学习 XMPP 协议和服务器软件开发一般知识的一种手段 正如许多人所知 XMPP 是基于 XML 的消息传递协议 它
  • 如何在后台保持 iphone ios xmpp 连接处于活动状态?

    iPhone 的 XMPPFramework 功能强大 我已经启动并运行了它 但是如何在后台保持连接 10 分钟以上 我希望获得更多有关如何实现此目标的文档 操作方法 因此 用例非常简单且常见 Joe 在线并且正在使用 iPhone 聊天应
  • Java 和 Jabber/Smack [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试使用最新版本的 Smack 3 2 1 编写一个简单的示例 以便在两个帐户之间发送和接收消息 Connection connec
  • 即使与XMPP服务器断开连接,如何保持群聊室(MUC)始终存在?

    我正在 XMPP Jabber 协议中使用 openfire jsjac 开发即时消息模块 J2EE Web 应用程序的一部分 openfire用户 组管理 表已重定向到我们的业务数据库表 这意味着我不再需要在openfire中维护用户 组
  • 如何在 Android 的这个特定用例中实现 MQTT?

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

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

    我想知道用户何时在自定义模块中的 ejabberd 会话中登录和注销 而不更改 ejabberd 代码 我需要它 因为我必须在用户登录时执行一些操作 并清理用户注销时执行的操作 另外 在某些情况下我需要能够注销用户 那么 有没有办法扩展某些
  • mod_http_upload - 使用 Ruby on Rails 上传 HTTP 文件 (XEP-0363)

    我想在我的聊天应用程序中的用户之间传输图像 我正在使用 ejabberd 服务器进行聊天 据我发现 可以做到这一点的模块是mod http upload HTTP 文件上传 XEP 0363 我不知道如何实现这一点 任何人都可以帮助我弄清楚

随机推荐

  • 从资源加载时在 DataGridView 中显示红色“X”的图像

    我正在尝试将我的项目资源中的图像列添加到新创建的 DataGridView 这是代码 DataGridViewImageColumn myImage new DataGridViewImageColumn myImage Image Pro
  • Code First 实体框架多对多关系

    谁能指出我哪里错了 我创建了两个简单的类 具有多对多的关系 工作正常 所有表都已正确填充 除了当我尝试检索任何学生课程时 什么都没有返回 public partial class Student public Student Courses
  • 如何使用 DataBinding Framework MVVM 在 EditText 上设置错误

    我正在使用 Android 数据绑定框架 我假设有一个用于登录表单的 EditText 用户名如下
  • 如何在 popper-js 中显示箭头

    我正在尝试使用popper js https popper js org index html 但我很难阅读文档并让事情正常运行 我似乎无法理解arrow显示 指向引用元素的三角形 下面的代码缩小了我想要做的事情 弹出器显示并定位在内容加载
  • csv 模块返回第一列的 BOM

    我有一个 csv 文件 格式如下 type type mapping style style mapping Count Residential Residential Antique Antique 109 Antique Residen
  • Azure Key Vault - 编程创建

    如何在 NET Core 应用程序中使用 C 以编程方式创建 Azure KeyVault 我看过之后写入和读取密钥库的示例 它是配置的 但不是在创建 kv 本身时进行的 使用方法VaultsOperationsExtensions Cre
  • 滚动顶部动画后滚动/滚动条锁定

    我有一些链接到页面内特定部分 使用主题标签 的锚点 以及滚动到文档窗口顶部或底部的锚点 html body animate scrollTop document height 2000 但是 一旦动画和滚动到达目的地并完成 文档滚动和滚动条
  • 多选编辑表单选定值

    在 Laravel 4 中遇到一个问题时 在 联系人 模型编辑表单中 我可以获得所有字段的当前值 除了用于与另一个模型 公司 建立关系的多重选择的字段值 这是一种多对多的关系 我正在获取公司列表 但即使存在关系 也没有选择任何公司 这是我的
  • 如何解决WPF表单调整大小-控件滞后和黑色背景?

    我有一个非常简单的 WPF 窗口 其中唯一的东西是一个右对齐按钮 当我通过拖动左边界来调整窗口大小时 按钮会跳很多次 自己尝试一下 来回拖动左侧边界 此外 在调整大小期间 黑色背景会暂时暴露 In this https stackoverf
  • RSpec+Capybara 请求规范 w/JS 不起作用

    使用 Javascript 时我无法使请求规范正常工作 我的规格pass如果我在没有 Javascript 的情况下运行它们 页面构建为可以使用或不使用 JS 具体来说 当我进行如下断言时 规范会失败Post should have 1 r
  • 如何在pycharm中将部分文件(帅哥)提交到git

    我是 Eclipse PyDev EGit 的重度用户 希望切换到 PyCharm 在 Eclipse 中 我可以选择仅将文件的某些块 行添加到 git 索引 与使用相同git add p从航站楼 我发现通过 GUI 执行此操作更快 并且我
  • 如何将现有的嵌套存储库(已在子目录中签出)作为子模块添加到父 Git 存储库?

    如果我从工作 父 目录创建初始提交 但存在具有独立签出的 git 存储库的子目录 会发生什么情况 我只是做了git add 但这给我带来了一个奇怪的情况 即具有嵌套 Git 存储库的子目录未注册为父存储库的子模块 那么 在初始 git ad
  • 如何在R中生成偏态正态分布的随机数?

    我正在尝试生成 1000 组 130 个随机数 这些随机数符合以下数字的偏态正态分布 10 4 9 3 6 8 4 8 5 7 5 8 4 5 3 4 2 0 3 0 4 4 1 6 9 5 9 2 5 2 2 8 3 2 4 4 2 1
  • linux shell 终止信号 SIGKILL && KILL

    我刚刚写了一个shell脚本来控制模块的启动和停止 一切看起来都很正常 直到我发现停止命令导致了意想不到的结果 我使用命令kill s SIGKILL gpid杀死一组进程 我用 bin sh像这样运行命令 bin sh c kill s
  • 使用联合类型进行对象字面量分配时,打字稿类型丢失

    我预计以下代码会出现错误 但对于打字稿来说完全没问题 你能告诉我为什么吗 export interface Type1 command number export interface Type2 children string export
  • 使用 javascript 检查 url 内容类型

    为了节省服务器资源 我正在寻找一种使用 javascript 检索给定 url 的内容类型的方法 它不应仅从标题下载 URL 的完整内容 javascript 有限制吗 使用 head 请求进行 Ajax 调用 var url window
  • 为什么 Blazor 应用在​​任何页面重新加载时都会显示错误

    我正在使用 Blazor 技术开展项目 我有时需要使用一些 JS 代码 并且需要在每个页面中包含不同的 js 文件 据我所知 唯一的方法是使用 JS 函数和 Blazor JS 调用添加它 所以我所做的是 在 Host razor 中 fu
  • web.config 位置中的 IIS 动态 IP 限制

    我正在尝试使用IIS 动态 IP 限制 https www iis net downloads microsoft dynamic ip restrictions限制来自同一 IP 的请求 我已经运行了该模块 并且如果我从 IIS UI 编
  • 在 JMS 序列化器中排除 null 属性

    我使用的 XML API 可以选择仅检索部分响应 这导致生成的对象有很多NULL属性 如果使用此功能 有没有办法真正跳过NULL特性 我尝试实施排除策略 shouldSkipProperty PropertyMetadata propert
  • XMPP:未读消息计数

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