FCM遗留问题抛出随机的(502) Bad Gateway异常。

7

我有一个Asp.net应用程序,在FCM旧版HTTP终端点https://fcm.googleapis.com/fcm/send上进行了约100K次请求/天。

但是,每天大约有500个随机请求会抛出(502) Bad Gateway错误,如果我稍后手动尝试这些请求,它们就会工作并且通知会到达。

我收到的错误信息:

Error 502 (Server Error)!!1
<p><b>502.</b>
<ins>That’s an error.</ins>
<p>The server encountered a temporary error and could not complete your request.<p>Please try again in 30 seconds.  
<ins>That’s all we know.</ins>

可能会抛出异常的请求:

{
   "registration_ids":[
      "token 1",
      "token 2"
   ],
   "data":{
      "type":"navigation",
      "routeName":"Order",
      "Id":"18360"
   },
   "notification":{
      "title":"New Order Placed Successfully",
      "body":"Click here for more details #8073",
      "badge":1,
      "sound":"default"
   }
}

最好的问候


检查计算机内存。请参阅:https://www.digitalocean.com/community/questions/502-bad-gateway-randomly-ocurring - jdweng
@jdweng 在我的情况下,我认为不同的是因为我从谷歌那里得到了响应。 - asem mokllati
链接也会得到响应,因为502在响应中。如果没有响应,则会发生异常,指示无响应或超时。 - jdweng
我偶尔会遇到相同的错误,尝试了几次后它就可以工作了。我不认为这里有内存问题(502是服务器错误,而不是客户端错误)。 - thijsonline
2
@thijsonline 实际上我已经迁移到了HTTP v1,问题消失了,我认为谷歌这样做是为了鼓励人们迁移到新的API版本。 - asem mokllati
1个回答

4

迁移到Http v1能够解决此问题。

迁移指南: https://firebase.google.com/docs/cloud-messaging/migrate-v1

注意:任何使用设备组消息的应用程序必须继续使用传统API来管理设备组(创建、更新等)。HTTP v1可以向设备组发送消息,但不支持管理功能。


刚刚在HTTP v1端点上也遇到了这个错误,使用了HTTP/2多路复用。一个解决方法是实现重试机制,因为这是谷歌服务器端的临时错误。 - Elad Nava

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接