一种方案是使用websocket,客户端和服务器可以直接实现交互,但是一般的服务器并不支持。如果简单实现服务器推送消息,使用html5的服务器推送消息是最简单的。
客户端例子
<!DOCTYPE html>
<html>
<head>
<script type='text/javascript'>
var source = new EventSource('server.php');
source.onmessage = function (event) {
ev = document.getElementById('events');
ev.innerHTML += "<br>[in] " + event.data;
};
</script>
</head>
<body>
<div id="events"></div>
</body>
</html>
服务器端例子,服务器端的名字保存为server.php 供客户端调用即可。
<?php
set_time_limit(0);
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
while(true){
ob_end_clean();
$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
}
?>