【问题标题】:How to send push notification using XMPP Server?如何使用 XMPP 服务器发送推送通知?
【发布时间】:2014-07-11 03:10:12
【问题描述】:

我想在 iphone 中开发一个聊天应用程序。我正在使用 ejabberd xmpp 服务器。现在我可以向其他用户发送消息了。

现在我想接收带有推送通知的消息。

听说我们可以使用 xmpp 服务器来发送推送通知。

谁能告诉我,我想知道怎么做

  • 是否可以使用 ejabberd 发送推送通知

  • 是否可以使用 node js 从 ejabberd xmpp 服务器发送推送通知。

请提供任何建议以开始使用 xmpp 中的消息通知。

【问题讨论】:

  • ejabberd 商业版有推送通知模块。如果你想使用社区版,那么你需要开发自己的扩展。

标签: node.js push-notification xmpp ejabberd xmppframework


【解决方案1】:

XMPP 在整个 XMPP 会话期间需要持久的套接字连接或“持久的”BOSH 连接。每当您的 iOS 应用程序进入后台时,iOS 都会终止您的套接字连接,并且您的 Openfire 服务器会终止您的 XMPP 会话。这意味着用户离线。这也是该用户收到的消息进入离线存储的原因。

更直接的方法是在 openfire 中做一些事情,当 openfire 无法传递消息时,它会将其存储在离线表中,我们可以对该部分进行一些拦截并使用消息启动推送过程。

【讨论】:

  • 感谢您的回复,但我的问题是 - 默认情况下是否可以通过 ejabberd 发送推送通知。 - 或者我们需要使用 GCM 或 APN 来发送推送通知。
  • eJabberd 没有内置该功能,但它的可扩展性很强。 mod_zeropush 利用可扩展性添加此通用功能,而无需在您的应用程序中存储设备令牌。
【解决方案2】:

如果您想使用 ejabberd 社区版发送推送通知,您需要添加一个 ejabberd 模块,该模块将离线消息发送到指定的推送通知提供商。该提供商将通知发送到苹果 APNS 或谷歌 GCM。 你可以自己开发一个模块,或者你会在 inet.js 中找到一些。 mod_zeropush (https://github.com/ZeroPush/mod_zeropush) 将是其中之一,但 self 的 zeropush 服务被取消。另一个是 mod_onesignal (https://github.com/nobreak/mod_onesignal)。 OneSignal 是免费使用的推送通知提供程序。

【讨论】:

    猜你喜欢
    • 2011-10-01
    • 2016-09-27
    • 2017-05-26
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-01
    相关资源
    最近更新 更多