SSE是服务器向浏览器单向推送数据的技术,基于HTTP、使用EventSource API实现,适合实时更新场景。1. 前端通过new EventSource()连接后端接口,onmessage接收数据;2. 后端返回Content-Type为text/event-stream,按格式发送data、event、id、retry字段;3. 支持自定义事件监听与断线重连,浏览器自动携带Last-Event-ID恢复;4. 适用于日志监控、行情推送等服务端频繁推送场景,但不支持二进制和IE,需注意代理缓冲配置。

服务器发送事件(Server-Sent Events,简称SSE)是一种让服务器通过HTTP连接将数据“推送”到浏览器的技术。与WebSocket不同,SSE是单向的——仅从服务器到客户端,适合用于实时更新场景,比如股票行情、新闻推送、日志监控等。JavaScript中的EventSource API为实现SSE提供了原生支持,使用起来简单高效。
在前端JavaScript中,只需创建一个EventSource实例并指向后端提供的SSE接口即可:
const eventSource = new EventSource('/api/stream');
eventSource.onmessage = function(event) {
console.log('收到消息:', event.data);
// 更新页面内容
document.getElementById('output').innerText += event.data + '\n';
};
eventSource.onerror = function(err) {
console.error('SSE连接出错:', err);
};
只要服务器保持连接,后续推送的消息都会触发onmessage回调。
SSE要求服务器返回的内容类型为text/event-stream,并且消息需遵循特定格式。每条消息可以包含以下字段:
立即学习“Java免费学习笔记(深入)”;
例如Node.js(Express)后端示例:
app.get('/api/stream', (req, res) => {
res.writeHead(200, {
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive'
});
const sendEvent = (data) => {
res.write(`data: ${JSON.stringify(data)}\n\n`);
};
// 模拟定时推送
const interval = setInterval(() => {
sendEvent({ time: new Date().toISOString(), value: Math.random() });
}, 2000);
// 客户端断开时清理
req.on('close', () => {
clearInterval(interval);
res.end();
});
});
除了默认的message事件,服务器还可以发送自定义事件:
DM建站系统律师事务所HTML5网站模板, DM企业建站系统。是由php+mysql开发的一套专门用于中小企业网站建设的开源cms。DM系统的理念就是组装,把模板和区块组装起来,产生不同的网站效果。可以用来快速建设一个响应式的企业网站( PC,手机,微信都可以访问)。后台操作简单,维护方便。DM企业建站系统安装步骤:第一步,先用phpmyadmin导入sql文件。 第二步:把文件放到你的本地服务器
0
// 后端发送
res.write('event: notification\ndata: {"msg": "新通知"}\n\n');
前端监听该事件:
eventSource.addEventListener('notification', function(event) {
const data = JSON.parse(event.data);
alert('提醒:' + data.msg);
});
浏览器会自动尝试重连(默认约3秒),可通过retry字段调整:
res.write('retry: 5000\n');
若设置了id,浏览器会在重连请求中携带Last-Event-ID头,可用于恢复断点。
SSE适用于服务端频繁推送、客户端只读的场景,优势在于基于HTTP、兼容性好、自动重连、轻量。但注意以下几点:
基本上就这些,SSE是一种简单实用的实时通信方案,尤其适合不需要双向交互的推送需求。
以上就是JavaScript_SSE服务器发送事件应用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号