使用sse技术如何实现
时间: 2023-07-20 10:07:31 浏览: 54
SSE(Server-Sent Events,服务器推送事件)是一种在浏览器和服务器之间实现实时双向通信的技术。使用 SSE 技术,服务器可以向客户端发送数据,而客户端无需发送请求,也可以接收来自服务器的数据。
以下是使用 SSE 技术实现实时通信的基本步骤:
1. 在客户端使用 JavaScript 创建一个 EventSource 对象,指定要连接的服务器的 URL。
```
var source = new EventSource('/stream');
```
2. 在服务器端创建一个路由,处理客户端的 SSE 连接请求。在该路由中,设置响应头,指定连接为 SSE 连接,同时设置发送的数据格式为 text/event-stream。
```
app.get('/stream', function(req, res) {
res.set({
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive'
});
// 发送数据到客户端
setInterval(function() {
res.write('data: ' + new Date() + '\n\n');
}, 1000);
});
```
3. 服务器可以使用 res.write 方法向客户端发送数据。每条数据以 "data:" 开头,以两个换行符结尾。
4. 在客户端通过监听消息事件来接收来自服务器的数据。
```
source.addEventListener('message', function(event) {
console.log(event.data);
});
```
通过这种方式,客户端和服务器之间可以实现实时双向通信,可以用来实现聊天室、实时数据展示等应用场景。