SSE:服务器长连接消息推送

SSE与WebSocket有相似功能,都是用来建立浏览器与服务器之间的通信渠道。两者的区别在于:
WebSocket是全双工通道,可以双向通信,功能更强;
WebSocket是一个新的协议,需要服务器端支持;
WebSocket是一种较重的协议,相对复杂。

从上面的比较可以看出,两者各有特点,适合不同的场合。


客户端代码:
var source = new EventSource("http://www.xxxx.com/sse.php");    //实例化
source.onmessage = function(e){        //监听消息
	console.log(e.data);
}


服务端代码:
/**
 * SSE消息推送
 */
public function sendSseMsg(){
	header('Content-Type:text/event-stream');    //定义类型
	header('Cache-Control:no-cache');            //设置不缓存
    	echo "retry:".(1000*10)."\n";            //间隔10秒推送一次
	$num = rand(0, 999999);
	echo "data:$num\n\n";                        //必须以data:开头,\n\n结尾,向客户端推送消息
	ob_flush();
	flush();
}


结果如下:

微信截图_20171227144422.png

微信截图_20171227144439.png


***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************


客官,点击下方打赏一个呗~

点赞

发表评论