我是http连接的新成员。我想要实现的是服务器应该通过持久连接周期性地向客户端发送一些数据(通知)。如何通过http持久连接从服务器定期向客户端发送请求
我写在服务器端代码的PHP,如:
<?php
set_time_limit(0);
header('Connection: keep-alive');
$i = 0;
while($i < 10){
echo "Hello$i<br/>";
sleep(5);
$i++;
}
?>
,并试图利用Java来连接到服务器:
public static void main(String[] args) throws Exception {
URL oracle = new URL("http://localhost/connection.php");
URLConnection yc = oracle.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
我预计从服务器获取内容每五秒钟如下所示:
Hello0<br/>
Hello1<br/>
...
但是,而不是这个java客户端正在等待50秒。和打印:
Hello0<br/>Hello1<br/>Hello2<br/>Hello3<br/>Hello4<br/>Hello5<br/>Hello6<br/>Hello7<br/>Hello8<br/>Hello9<br/>
我希望服务器自己发送通知。而不是客户端每五秒钟连接到服务器。
你永远不会冲洗你的连接服务器端。 – chrylis
@chrylis以及如何做到这一点?如果服务器刷新它不会失去连接?使用'sleep(5)'前加上 – Vanguard
,添加'flush();'和'ob_flush();' –