SSE:服务器发送事件,使用长连接进行通信

SSE:服务器发送事件,使用长连接进行通信浏览器

优势:服务器

比向服务器发送请求查询数据更有效率
只能服务器向浏览器发送消息
创建在http协议之上,现有的服务器都支持
支持断线重连
支持自定义发送的数据类型
客户端的代码的结构:url

一、检测是否支持 二、部署SSE 三、设定相应的回调事件code

例如:事件

if(window.EventSource){
var source = new EventSource('http://127.0.0.1')
//必须是同一域下、协议和端口也要相同部署

switch(source.readyState){
    case 0:
        console.log('链接还未创建或者链接断线')
        break;
    case 1:
        console.log('链接已经创建,能够接受数据')
        break;
    case 2:
        console.log('链接已断,不会重连')
        break;
}

source.onopean = function(){
    console.log('链接创建,触发open事件,写相应的回调')
}

source.onmessage = function(event){
    var data = event.data;//服务器传回的数据
    var orogin = event.origin;//服务器的url域名部分,包含协议、域名和端口
    var lastEventId = event.lastEventId;//数据的编号,由服务器端发送,若是没有编号,属性为空
}

source.onerror = function(event){
    console.log('链接中断')
}

source.close()

}
数据格式:get

data: message\n data: end\n\n域名

'\n\n'是结束符
id: id是数据标识符,标识已断数据的开头,lastEventId就是这个编号
retry: 1000 retry就是最大间隔时间it

相关文章
相关标签/搜索