服务器发送事件(Server-sent Events)是基于 WebSocket 协议的一种服务器向客户端发送事件和数据的单向通讯。
兼容性: 所有主流浏览器均支持服务器发送事件,除了 Internet Explorer。
EventSource用于接收服务器发送事件通知。
ie浏览器不兼容 EventSource对象 采用第三方插件 github EVentSource
nodejs下代码实现
var http = require("http") var SSE = require("sse") var server = http.createServer().listen(3000, ()=>{console.log('server is running')})
var sse = new SSE(server, {path: '/test', verifyRequest: () =>{return true}})
sse.on('connection', (client)=>{ client.on('close',() =>{}); client.send("hello world!") setInterval(()=>{client.send()},2000) })
|
客户端接收信息
var Events = new EventSource('http://localhost:3000/test') Events.onmessage = function(event){ console.log(event.data) }
|