name: sse description: 服务器发送事件实现、流式传输模式及实时更新。 allowed-tools: Read, Write, Edit, Bash, Glob, Grep
SSE 技能
为实时流式传输实现服务器发送事件提供专家级协助。
能力
- 实现SSE端点
- 处理流式响应
- 管理客户端连接
- 构建事件驱动更新
- 实现重连机制
使用场景
在以下情况时调用此技能:
- 向客户端流式传输更新
- 实现实时信息流
- 构建通知系统
- 单向实时通信
实现示例
// 服务器端
app.get('/events', (req, res) => {
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Connection', 'keep-alive');
const sendEvent = (event: string, data: object) => {
res.write(`event: ${event}
`);
res.write(`data: ${JSON.stringify(data)}
`);
};
// 发送初始数据
sendEvent('connected', { timestamp: Date.now() });
// 订阅更新
const unsubscribe = eventEmitter.on('update', (data) => {
sendEvent('update', data);
});
req.on('close', () => {
unsubscribe();
});
});
// 客户端
const eventSource = new EventSource('/events');
eventSource.addEventListener('update', (event) => {
const data = JSON.parse(event.data);
console.log('更新:', data);
});
最佳实践
- 处理重连机制
- 使用事件类型进行路由
- 实现保活机制
- 断开连接时清理资源
目标流程
- 实时更新
- 实时信息流
- 通知系统