在 openfire 中保持连接处于活动状态,但在 xmpp 中将用户显示为离线
Posted
技术标签:
【中文标题】在 openfire 中保持连接处于活动状态,但在 xmpp 中将用户显示为离线【英文标题】:Keep the connection alive in openfire but show user as offline in xmpp 【发布时间】:2016-10-12 08:55:37 【问题描述】:我正在使用 openfire smack 库开发一个 android 聊天应用程序。我创建了一个绑定服务来在后台收听消息。连接对象也由服务维护。服务在收听后台消息时工作正常,但问题是当应用程序处于后台时,用户始终在线显示。保持连接也是必要的,以便用户可以收听消息,但此连接一直显示用户在线。我想在应用程序时显示用户离线在后台。还有一点,我是 android 应用程序和 xmpp 协议的初学者。如果您认为我的问题毫无意义,请不要投反对票,因为对于初学者来说,每个问题都有意义
【问题讨论】:
【参考方案1】:要显示用户处于离线状态,您需要将状态发送到服务器,以便将其发布到您的花名册条目。现在您应该对其他用户显示为离线,但您的会话存在,因此 Openfire 会将您的消息路由给您。现在,当应用程序进入前台时,您可以再次发送您的出席信息,表明您有空。
【讨论】:
谢谢,但我也试过了。当我的状态设置为离线时,消息不会发送给我。。 那么你不能使用当前的逻辑,你必须在应用程序进入后台后断开 XMPP 连接(X 分钟后)。在 Openfire 端,将需要推送通知支持。但是没有官方插件。 openfire 中的 GCM 和 CallBackOnOffline 插件怎么样。我应该使用那个 CallBackOnOffline:使用提供的 URL 从 & 发送到消息的参数。因此,在这种情况下,您可以编写一个服务(使用 php 或任何服务器端语言)来接收来自该插件的请求,然后您可以将其转发给 GCM(同样是您自己的实现)。对于 GCM,如果您在谈论:github.com/meisterfuu/Openfire-GCM,那么它也在做同样的事情(发送到、从、消息到 URL) 但是你能告诉我如何使用 CallBackOnOffline 插件吗...我知道如何在服务器端实现 GCM 但是我如何将它与 CallBackOnOffline 插件一起使用...你的回答将是非常可观的..谢谢以上是关于在 openfire 中保持连接处于活动状态,但在 xmpp 中将用户显示为离线的主要内容,如果未能解决你的问题,请参考以下文章
服务器断开连接后如何在 Spring MVC 中保持客户端会话处于活动状态
保持 X11 应用程序处于活动状态,之后我可以断开连接并重新连接
IIS 回收应用程序池时如何保持 Blazor 服务器连接处于活动状态