我試圖通過Smack庫來驗證與Firebase-Cloud-Messaging的連接。我看到我的連接從google獲得streamId,因爲我在Android Studio IDE上記錄了這條消息: Log.d(「MyStreamId」,「Ddd:」+ connection.getStreamId()); 我的日誌會返回一個隨機字母數字號碼,所以這意味着Google的CCS正在注意到我的連接嘗試。現在,根據此鏈接: https://firebase.google.com/docs/cloud-messaging/server#connecting 爲了驗證我的「應用服務器」與Google CCS之間的連接,必須進行某種類型的通信交換。我正在嘗試開始使用XML格式的通信。在Android Studio上使用Smack構建XML流消息
我需要構造下面的「XML流」,並使用啪庫我的連接發送:
<stream:stream to="gcm.googleapis.com"
version="1.0" xmlns="jabber:client"
xmlns:stream="http://etherx.jabber.org/streams">
我所試圖做的是創建一個與鍵一個HashMap:「到」, 「版本」,「xmlns」。我在這個HashMap中丟失了另一個鍵嗎?
另外,我應該如何繼續?我應該把這個HashMap變成一些Json對象嗎?我之前在Android Studio上使用過JSON。我應該使用從Smack Library到XML()的方法將HashMap轉換爲流嗎?注意XML對象上的標籤。另外,如何使用我的連接對象(它是XMPPAbstractConnection對象)將它發送給Google的CCS?我的連接對象還有一個addAsyncStanzaListener對象,希望接收來自Google CCS的雙向通信。
任何想法或想法將不勝感激。
謝謝
來自以下鏈接的示例:http://www.grokkingandroid.com/xmpp-server-google-cloud-messaging/ –
,鏈接如下:http://www.grokkingandroid.com/xmpp-server -google-cloud-messaging /我發現Smack被用作與Firebase CCS進行通信的界面。基於此,Smack API充當與Firebase CCS的通信手段。現在,在Github上的友好應用程序中,他們使用Go Server與GCM進行通信。在其他鏈接中:https://firebase.google.com/docs/cloud-messaging/server#connecting朝中間。 CCS和App Server之間有一個「xml」交換。它發生在哪裏?在應用程序代碼或外部。 @arthurthompson –
CCS(FCM的一部分)是一個XMPP服務器。它允許您的應用程序服務器充當XMPP客戶端(例如使用Smack)並與CCS打開連接。消息是JSON包裝在XML中,例如:https://firebase.google.com/docs/cloud-messaging/downstream#xmpp_message –