【问题标题】:Use XMPP to implement a push notification infrastructure使用 XMPP 实现推送通知基础架构
【发布时间】:2013-09-15 21:30:38
【问题描述】:

我目前正在开展一个项目,该项目需要服务器从当前连接到服务器的设备请求数据。意思是,首先服务器找出哪些设备连接到服务器,然后向客户端设备发送特定于应用程序的消息,该消息应该唤醒客户端上存在的某些功能。

我正在研究 XMPP 服务,它看起来很有希望,因为它可以用作 PUSH 通知。 XMPP 中的 可用于检查设备当前是否已连接并已订阅服务器。由于每个 android 用户都有一个 gmail 帐户,我正在考虑使用 gmail xmpp 服务来连接/订阅服务器。然后向客户端发送特定消息,即 x...@gmail.com。

但是,如果以这种方式发送消息,客户端应用程序会像本地 gtalk 客户端一样获取消息。那么我该如何截取它以使其不会显示在 gtalk 客户端上但我的应用程序仍然可以获取它?

【问题讨论】:

  • XMPP“推送”不一定有意义,因为如果您知道我的意思,XMPP 在技术上是一种连接协议。看看设置 XMPP 服务器并使用它和 aSmack 库。从您的问题中很难判断您是否有一种简单的方法来获取哪些客户端已连接,或者这是否是您的要求?它们是否连接到 XMPP 服务或其他一些 Web 服务/协议?您是否在服务器中实现了 XMPP 发送服务?

标签: java push-notification xmpp smack asmack


【解决方案1】:

发送消息时使用完整的 JID。只有在使用裸 JID 时才应该向多个客户端发送。

  • 完整的 JID -> xyz@gmail.com/device
  • 裸 JID -> xyz@gmail.com

【讨论】:

  • 使用完整JID的问题是当设备离线或由于某种原因传递失败消息被发送到裸jid
猜你喜欢
  • 1970-01-01
  • 2011-10-01
  • 2012-12-22
  • 1970-01-01
  • 2012-08-24
  • 2014-05-25
  • 2019-02-08
  • 2018-11-22
  • 2013-05-28
相关资源
最近更新 更多