2014-03-06 13 views
0

我希望在不同的設備上同時推送不同的有效負載。現在我只能使用下面的代碼將相同的有效載荷推送到不同的設備。GCM將不同的有效負載推送到不同的設備

string stringregIds = null; 

    List<string> regIDs = new List<string>(); 

    //Add some regID into the list 

    stringregIds = string.Join("\",\"", regIDs.ToArray());; 

    string applicationID = "appID"; 

    string SENDER_ID = "senderID"; 

    string value = "Hello";                   

    WebRequest tRequest; 

    tRequest = WebRequest.Create("https://android.googleapis.com/gcm/send"); 

    tRequest.Method = "post"; 

    tRequest.ContentType = " application/json;charset=UTF-8"; 

    tRequest.Headers.Add(string.Format("Authorization: key={0}", applicationID)); 

    tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID)); 

    string postData = "{\"collapse_key\":\"score_update\",\"time_to_live\":108,\"delay_while_idle\":true,\"data\": { \"message\" : " 
         +"\""+value+"\",\"time\": "+"\""+System.DateTime.Now.ToString()+"\"},\"registration_ids\":[\""+stringregIds+"\"]}";                                 


    Byte[] byteArray = Encoding.UTF8.GetBytes(postData); 

    tRequest.ContentLength = byteArray.Length; 

    Stream dataStream = tRequest.GetRequestStream(); 

    dataStream.Write(byteArray, 0, byteArray.Length); 

    dataStream.Close(); 

    WebResponse tResponse = tRequest.GetResponse(); 

    dataStream = tResponse.GetResponseStream(); 

    StreamReader tReader = new StreamReader(dataStream); 

    String sResponseFromServer = tReader.ReadToEnd(); 

    tReader.Close(); 
    dataStream.Close(); 
    tResponse.Close(); 

是否有任何解決方案發送多個有效載荷到多個設備?

+0

凹凸..任何解決方案? – tan

回答

0

沒有捷徑將不同的有效載荷發送到不同的設備。您必須在單獨的HTTP請求中發送每封郵件。每個請求將包含一個註冊ID。

相關問題