2

我們的應用通過FCM上游向我們的服務器發送一些消息。我們有兩臺服務器作爲客戶端連接。Firebase雲消息傳遞 - 上游消息收到兩次

最近,我們已經注意到許多消息(> 50%)被接收兩次。通常在不同的服務器上,但有時在同一臺服務器上。

不確定從哪裏去。正在接收一個消息

日誌兩次如下:

Fri, 18 Nov 2016 21:39:17 GMT xmpp:connection receive: 
    <message to="[email protected]" from="[email protected]" type="normal"> 
    <gcm xmlns="google:mobile:data"> 
     {"data": 
     {"userInfo":"{}", 
     "path":"v1\/patient\/checkIn\/usage", 
     "method":"POST", 
     "body":"{}", 
     "dest":"https:\/\/api.stg.triggrhealth.com\/api\/v1" 
     }, 
     "time_to_live":43200, 
     "from":"f5LDS516Eu8:APA91bGEkzwXlmXRpfui6T01QM6V3pOY8p3nSkZMUfYkDYjRxu6Xa64Bh0Boc3so8X8royBA1v4PaGjPcUW6JI0pcZL7UK9P4LEqgVThfNQKGW8DZMhTEM-JDodDvUPjGpbPA-zdYYQb", 
     "message_id":"1479505157658", 
     "category":"com.triggrhealth.prototype.stage" 
     } 
    </gcm> 
    </message> 
Fri, 18 Nov 2016 21:39:17 GMT xmpp:connection send: 
    <gcm xmlns="google:mobile:data"> 
    {"to":"f5LDS516Eu8:APA91bGEkzwXlmXRpfui6T01QM6V3pOY8p3nSkZMUfYkDYjRxu6Xa64Bh0Boc3so8X8royBA1v4PaGjPcUW6JI0pcZL7UK9P4LEqgVThfNQKGW8DZMhTEM-JDodDvUPjGpbPA-zdYYQb", 
    "message_id":"1479505157658", 
    "message_type":"ack" 
    } 
    </gcm> 
Fri, 18 Nov 2016 21:42:28 GMT xmpp:connection receive: 
    <message to="[email protected]" from="[email protected]" type="normal"> 
    <gcm xmlns="google:mobile:data"> 
     {"data": 
     {"userInfo":"{}", 
     "path":"v1\/patient\/checkIn\/usage", 
     "method":"POST", 
     "body":"{}", 
     "dest":"https:\/\/api.stg.triggrhealth.com\/api\/v1" 
     }, 
     "time_to_live":43200, 
     "from":"f5LDS516Eu8:APA91bGEkzwXlmXRpfui6T01QM6V3pOY8p3nSkZMUfYkDYjRxu6Xa64Bh0Boc3so8X8royBA1v4PaGjPcUW6JI0pcZL7UK9P4LEqgVThfNQKGW8DZMhTEM-JDodDvUPjGpbPA-zdYYQb", 
     "message_id":"1479505157658", 
     "category":"com.triggrhealth.prototype.stage" 
     } 
    </gcm> 
    </message> 
Fri, 18 Nov 2016 21:42:28 GMT xmpp:connection send: 
    <gcm xmlns="google:mobile:data"> 
    {"to":"f5LDS516Eu8:APA91bGEkzwXlmXRpfui6T01QM6V3pOY8p3nSkZMUfYkDYjRxu6Xa64Bh0Boc3so8X8royBA1v4PaGjPcUW6JI0pcZL7UK9P4LEqgVThfNQKGW8DZMhTEM-JDodDvUPjGpbPA-zdYYQb", 
    "message_id":"1479505157658", 
    "message_type":"ack" 
    } 
    </gcm> 

回答

-1

您可能要檢查並嘗試sending an ACK message。如上所述,

響應於上游消息,應用服務器必須使用相同的連接來發送包含唯一消息ID的ACK消息。 如果GCM未收到ACK,它可能會重試將消息發送到應用服務器

這裏的示例代碼:

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

最後,請另見XMPP Connection Server Reference約上游消息語法的更多信息。

+0

感謝您的回覆,但如果您查看日誌,我會立即確認消息。 – djperron