我有100000个用户,我总是发送信息,实际上这些信息并没有传达给所有用户,我不知道为什么。
我将附上发送php文件,请看看你是否可以告诉我这有什么问题以及我应该使用哪种逻辑。请注意,如果我将1000号码更改为3000而没有用户收到,我也不知道为什么。
<?php include('session.php');?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php
header('Content-type: text/html; charset=utf-8');
//generic php function to send GCM push notification
function sendPushNotificationToGCM($registatoin_ids, $message) {
//Google cloud messaging GCM-API url
$url = 'https://android.googleapis.com/gcm/send';
$fields = array(
'registration_ids' => $registatoin_ids,
'data' => $message,
);
define("GOOGLE_API_KEY", "my_key");
$headers = array(
'Authorization: key=' . GOOGLE_API_KEY,
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
//curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
$result = curl_exec($ch);
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
curl_close($ch);
return $result;
}
?>
<?php
header('Content-type: text/html; charset=utf-8');
$response = array();
require_once __DIR__ . '/db_connect.php';
$db = new DB_CONNECT();
if (isset($_GET['level']) &&isset($_GET['m1']) &&isset($_GET['m2']) &&isset($_GET['m3']) &&isset($_GET['m4']) &&isset($_GET['m5']) &&isset($_GET['m6']) &&isset($_GET['m7'])){
$level=$_GET['level'];
$m1=$_GET['m1'];
$m2=$_GET['m2'];
$m3=$_GET['m3'];
$m4=$_GET['m4'];
$m5=$_GET['m5'];
$m6=$_GET['m6'];
$m7=$_GET['m7'];
$m11=mysql_real_escape_string($_GET['m1']);
$m21=mysql_real_escape_string($_GET['m2']);
$m31=mysql_real_escape_string($_GET['m3']);
$m41=mysql_real_escape_string($_GET['m4']);
$m51=mysql_real_escape_string($_GET['m5']);
$m61=mysql_real_escape_string($_GET['m6']);
$m71=mysql_real_escape_string($_GET['m7']);
mysql_query("SET NAMES 'utf8'");
$resultaa = mysql_query("INSERT words (id, level, m1, m2, m3, m4, m5, m6, m7) VALUES (NULL,'$level','$m11','$m21','$m31','$m41','$m51','$m61','$m71')");
$id = mysql_insert_id();
if($level == 0){
$result = mysql_query("SELECT Rid FROM users ");
}else{
$result = mysql_query("SELECT Rid FROM users where level = '$level' OR level = '4'");
//$result = mysql_query("SELECT Rid FROM users where level = '$level'");
}
$message = array(
'word_id' => $id,
'm1' => $m1,
'm2' => $m2,
'm3' => $m3,
'm4' => $m4,
'm5' => $m5,
'm6' => $m6,
'm7' => $m7,
'level' => $level
);
if (mysql_num_rows($result) > 0) {
for($counter = 0; $counter<mysql_num_rows($result) ; $counter+=1000) {
$gcmRegIds=array();
for($counter2=$counter ; $counter2<$counter+1000;$counter2++){
if($counter2<mysql_num_rows($result)){
$row = mysql_fetch_array($result);
$gcmRegIds[]=$row["Rid"];
}
}
$pushStatus = sendPushNotificationToGCM($gcmRegIds, $message);
echo $pushStatus;
}
$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
echo "Process Time: {$time}";
}else {
$response["success"] = 0;
$response["message"] = "No user found";
echo json_encode($response);
}
//echo $result;
}
else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
// echoing JSON response
echo json_encode($response);
}
?>
</body>
</html>