【问题标题】:Unable to get messages on device when sent from XMPP server to FCM server从 XMPP 服务器发送到 FCM 服务器时无法在设备上获取消息
【发布时间】:2017-02-20 22:01:10
【问题描述】:

我可以将消息从 FCM 控制台发送到我的 Android 应用程序。但是,当我从 XMPP 服务器向 FCM 服务器(针对我的设备)发送消息时,没有收到消息。我的 XMPP(我的应用服务器)与 FCM 的连接已连接并经过身份验证。

以下是我发送的最后一节:

<message id='TdQnz-6'>

<gcm xmlns="google:mobile:data">
{
    "to":"eXPDcHdXhF4:APA91bGo .... ",

    "notification":{

        "body":"great match!",
        "title":"Portugal vs. Denmark",
        "icon":"myicon"
    }
}
</gcm>
</message>

【问题讨论】:

  • 您的目标是什么设备? Android 还是 iOS?
  • 我的目标是 android 并为 xmpp 客户端使用 smack 4。
  • 您是否收到来自 FCM 服务器的任何请求?
  • 我已经尝试了从连接验证到 json 有效负载语法的所有方法,但没有任何效果。过去 2 天卡住了。
  • 非常感谢。恢复到 smack 3 解决了这个问题。

标签: firebase xmpp firebase-cloud-messaging


【解决方案1】:

不要向 XMPP 输入消息 id,这将不起作用!把它放到“数据”中!!如有必要,您可以使用“数据”并添加您自己的消息 ID! FCM 服务器为您生成内部消息 ID!

<message id="">
  <gcm xmlns="google:mobile:data">
    { "data": {
      "score": "5x1",
      "time": "15:10"
    },
    "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
  }
  </gcm>
</message>

那部分也不行!

"notification":{

        "body":"great match!",
        "title":"Portugal vs. Denmark",
        "icon":"myicon"
}

离开它并尝试发送...检查来自服务器的回复

应该是这样的

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "from":"REGID",
      "message_id":"m-1366082849205"
      "message_type":"ack"
  }
  </gcm>
</message>

如果出现错误,您会得到类似的结果

<message>
 <gcm xmlns="google:mobile:data">
 {
   "message_type":"nack",
   "message_id":"msgId1",
   "from":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   "error":"INVALID_JSON",
   "error_description":"InvalidJson: JSON_TYPE_ERROR : Field \"time_to_live\" must be a JSON java.lang.Number: abc"
 }
 </gcm>
</message>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 2012-12-09
    • 2020-09-14
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多