介绍
SSE是一种能让浏览器通过http连接自动收到服务器端更新的技术,SSE EventSource 接口被W3C制定为HTML5的一部分。
它是能完成服务器端向客户端单向推送消息,但是IE不支持……
服务器端
php代码
<?php
// 以event-steam的方式输出
header("Content-Type:text/event-stream;charset='utf-8'");
// 指定哪个域来访问
header("Access-Control-Allow-Origin:http://127.0.0.1/");
echo "data:现在北京时间是".date('H:i:s')."\r\n\r\n";
?>
html代码
<script>
var source;
function init(argument){
source = new EventSource('http://localhost/sse/data.php');
// 建立连接
source.onopen = function (){
console.log('连接已建立',this.readyState)
}
// 后端实时推送的数据
source.onmessage = function(event){
console.log('从服务器实时获取的数据',event.data);
}
// 出错的监听
source.onerror = function(){
}
}
init();
</script>
这里主要是new一个EventSource实例,然后监听onopen事件,这个事件是监听连接已建立,然后通过onmessage事件来监听后端推送过来的消息。