2017-05-11 33 views
1

我有一個已發佈的應用程序,現在我希望用戶通過推送通知接收新信息,我一直在進行搜索,並且發現了Firebase,我懷疑的內容以及如何添加Firebase帳戶以外的郵件。 我有一個sql服務器數據庫系統,我正在保存我的信息,並想知道如何工作,以便在推送通知中添加新信息時已經出現在我的應用程序中推送通知

如何在不使用Firebase的情況下創建自己的通知服務器?我需要使用消息傳遞服務器嗎?

回答

2

Firebase Cloud Messaging是將推送通知集成到應用程序中的最佳方法之一。請通過此tutorial在FCM控制檯上爲任何android應用程序設置您的應用程序。對於IOS,請使用component獲取示例代碼。完成FCM控制檯上的設置後,嘗試從FCM控制檯發送推送通知。如果它被收到,那麼你的客戶端(應用)代碼工作正常。

現在,爲了建立一個服務器端工具來觸發推送通知,有三種方式發送推送通知:

  • 信息發送到特定設備使用設備令牌。 Refer link
  • 信息發送到設備組 - - 由客戶端應用程序訂閱
  • 信息發送到主題Refer link

使用下面C#服務器端代碼使用設備的令牌發送消息給特定的客戶端應用程序:

WebRequest objRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send"); 
string jsonNotificationMessageFormat = "{\"to\":\"device_token_id\",\"notification\":{\"title\":\"This is the title\",\"body\":\"This is the body of message\",\"icon\":\"icon_name\",\"sound\":\"default\"}}"; 
Byte[] byteArray = Encoding.UTF8.GetBytes(jsonNotificationMessageFormat); 
objRequest.Headers.Add(string.Format("Authorization: key={0}", serverKey)); 
objRequest.Headers.Add(string.Format("Sender: id={0}", senderId)); 
objRequest.ContentLength = byteArray.Length; 
objRequest.ContentType = "application/json"; 
objRequest.Method = "post"; 

    using (Stream dataStream = objRequest.GetRequestStream()) 
    { 
     dataStream.Write(byteArray, 0, byteArray.Length); 

     using (WebResponse objResponse = objRequest.GetResponse()) 
     { 
      using (Stream dataStreamResponse = objResponse.GetResponseStream()) 
      { 
       using (StreamReader objReader = new StreamReader(dataStreamResponse)) 
       { 
        String responseFromFirebaseServer = objReader.ReadToEnd(); 
       } 
      } 
     } 
    } 

注:serverKeysenderId是在雲消息發送標籤可用一旦完成了在FCM控制檯上配置應用程序,Firebase控制檯的項目設置窗格就會顯示。

注:應用程序安裝在任何設備上每一次,device_token該設備的變化,因此,你需要將更新device_token在Web服務請求。

0

方法是創建自定義服務https://developer.android.com/reference/android/app/Service.html,該服務通過套接字保持連接或輪詢某個遠程服務器的時間間隔。

但是,我建議Firebase服務在電池消耗方面更加先進和優化,特別是在利用睡眠模式時。製作具有快速響應和CPU消耗的服務不是微不足道的。我認爲定製的服務開發將導致網絡例程庫的本地(C++)編碼。

另外,考慮到Firebase提供了自己的身份驗證服務,能夠將您的匿名用戶無縫轉換爲註冊。 Firebase服務有很多優點。缺點是:如果您的應用會增長,您的用戶必須安裝Google Play服務 - 您需要向Firebase付款。

+0

Existe alguma maneira aapplicaçãono projeto de desktop or web C#incluir essas mensagens,fora da firebase? – Sabino