Я пишу приложение для Android, которое использует C2DM. Когда пользователь отправляет какое-либо сообщение на сервер, сервер отвечает обратно отправителю и пересылает это сообщение на набор других пользователей в сети.
Проблема в том, что ответ отправителю задерживается до тех пор, пока сообщение не будет отправлено всем остальным. Это занимает много времени. Я хочу, чтобы ответ сначала отправился отправителю, а затем выполнил процесс пересылки. Как я могу достичь этого …? Если я могу использовать параллельную обработку, как я могу это сделать в PHP …? Любая помощь будет очень высоко ценится 🙂
Я использовал что-то вроде этого,
print(json_encode("Inserted Successfully"));//." ".count($tags))); while($row = mysql_fetch_row($result)) { $id = $row[0]; sendMessageToUserID($id,"New Question !!",$ques_id,"yyyy"); }
Но здесь «Inserted Successfully» не отправляется отправителю, пока не будет выполнен цикл while.
Я не знаю, будет ли это работать, но вы можете попробовать добавить Content-Length:
and Connection: close
заголовки и, конечно же, явно очистить вывод.
EDIT: попробуйте это
ob_start(); //output header("Content-Length: ".ob_get_length()); header("Connection: close"); ob_end_flush(); //do other stuff
Ob-Implicit-Flush должен делать трюк. 🙂