Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当用户在android中使用XMPP离线时向用户发送通知_Android_Push Notification_Google Cloud Messaging_Xmpp_Smack - Fatal编程技术网

当用户在android中使用XMPP离线时向用户发送通知

当用户在android中使用XMPP离线时向用户发送通知,android,push-notification,google-cloud-messaging,xmpp,smack,Android,Push Notification,Google Cloud Messaging,Xmpp,Smack,我使用带有XMPP服务器的Smack客户机实现了一个Android聊天应用程序。当用户在线时,一切正常,现在当用户离线时(应用程序未处于运行状态)。我想使用GCM推送通知 有没有办法做到这一点,我们有没有办法管理服务器本身来解决这个问题 您可以在用户联机或不联机的任何时候发送推送通知,但设备具有internet。您拥有所有设备设备令牌,因此当您向特定用户发送消息时,请使用其设备令牌并发送推送通知。我也面临此问题。我将通过以下步骤解决此问题: 使用一个数据库开发一个Web服务(ASP或PHP或…)

我使用带有XMPP服务器的Smack客户机实现了一个Android聊天应用程序。当用户在线时,一切正常,现在当用户离线时(应用程序未处于运行状态)。我想使用GCM推送通知


有没有办法做到这一点,我们有没有办法管理服务器本身来解决这个问题

您可以在用户联机或不联机的任何时候发送推送通知,但设备具有internet。您拥有所有设备设备令牌,因此当您向特定用户发送消息时,请使用其设备令牌并发送推送通知。

我也面临此问题。我将通过以下步骤解决此问题:

  • 使用一个数据库开发一个Web服务(ASP或PHP或…),该数据库将包含每个JID的用户FCM-TOKENS
  • 在android设备上开发FCM,并在刷新令牌时将其发送到我的Web服务,并将其保存在db中
  • 在openfire中激活“CallBackOnOffline”插件。(当收到邮件但收件人不可用时,将带有JSON的POST请求发送到定义的url)
  • 将“服务属性”中的“plugin.callback\on\u offline.url”设置为我的Web服务。因此,消息和jid将被发送到我的web服务
  • 现在从我的web服务数据库获取FCM-TOKEN,并向FCM发送一个包含消息正文和标题的请求

  • 我说的是当应用程序运行时,消息由xmpp传递。但当应用程序未运行/不在后台时,我希望发送推送。我知道gcm是如何工作的,但我不知道如何在服务器上触发触发器,因为应用程序处于脱机状态。你是说应用程序处于停止/终止状态吗?是的!!在那个时候,如何像WhatsApp一样通知用户消息当你的应用程序完全停止/关闭时,不可能收到通知。我在信中提到了这一点。如果它只是关闭的,这是可能的,因为后台服务可能仍在运行。@McAwesomville那么当用户不在时,如何通知用户新消息?我在考虑openfire的OFOFOFFLINE表上的触发器。嗨,你找到解决方案了吗?