Json GCM将不同的有效负载推送到不同的设备

Json GCM将不同的有效负载推送到不同的设备,json,google-cloud-messaging,Json,Google Cloud Messaging,我想在同一时间将不同的有效载荷推送到不同的设备上。现在,我只能用下面的代码将相同的负载推送到不同的设备上 string stringregIds = null; List<string> regIDs = new List<string>(); //Add some regID into the list stringregIds = string.Join("\",\"", regIDs.ToArray());; stri

我想在同一时间将不同的有效载荷推送到不同的设备上。现在,我只能用下面的代码将相同的负载推送到不同的设备上

    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();
字符串stringregIds=null;
List regIDs=新列表();
//在列表中添加一些regID
stringregIds=string.Join(“\”,\”,regIDs.ToArray());;
字符串applicationID=“appID”;
字符串发送者\u 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”;
添加(string.Format(“Authorization:key={0}”,applicationID));
添加(string.Format(“Sender:id={0}”,Sender_id));
字符串postData=“{\”折叠键\“:\”分数更新\“,\”生存时间\“:108,\”空闲时延迟\“:true,\”数据\“:{\”消息\“:”
+“\”“+value+”\“,\“time\”:“+”\”“+System.DateTime.Now.ToString()+“\”},\“注册ID\”:[\”“+stringregIds+“\”]}”;
Byte[]byteArray=Encoding.UTF8.GetBytes(postData);
tRequest.ContentLength=byteArray.Length;
Stream dataStream=tRequest.GetRequestStream();
写入(byteArray,0,byteArray.Length);
dataStream.Close();
WebResponse-treresponse=tRequest.GetResponse();
dataStream=treresponse.GetResponseStream();
StreamReader tReader=新的StreamReader(数据流);
字符串sResponseFromServer=tReader.ReadToEnd();
tReader.Close();
dataStream.Close();
t响应关闭();

是否有任何解决方案可以将多个有效负载发送到多个设备

向不同的设备发送不同的有效负载没有捷径。您必须在单独的HTTP请求中发送每条消息。每个请求将包含一个注册ID