我已經成功實現了使用google c2dm的Android推送通知。我總是發送一個設備的發佈請求,一個設備延遲1-2秒。所以,如果我有1000個設備,我的腳本將需要1000多秒才能完成對所有設備的推送。使用谷歌一次性向多個設備推送通知c2dm
我想知道的是,我們可以發送所有設備的發佈請求到谷歌c2dm嗎?如果可以,該怎麼辦?
我正在使用PHP腳本。
這裏是我的代碼推消息到設備:
function sendMessageToPhone($authCode, $deviceRegistrationId, $msgType, $messageText, $infoType, $messageInfo) {
$headers = array('Authorization: GoogleLogin auth=' . $authCode);
$data = array(
'registration_id' => $deviceRegistrationId,
'collapse_key' => $msgType,
'data.message' => $messageText,
'data.type' => $infoType,
'data.data' => $messageInfo
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://android.apis.google.com/c2dm/send");
if ($headers)
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
如果我有更多的設備我環路這樣的:
while($row = mysql_fetch_assoc($result)) {
sendMessageToPhone($authCode, $row['deviceRegistrationId'], GOOGLE_MSG_TYPE, $messageText, $infoType, $messageInfo);
}
感謝幫助。
您應該添加的代碼,你的片段展示瞭如何把你的事件,這樣的建議可以進行。 – hakre 2012-01-02 08:50:38