# sse **Repository Path**: naclnezn/sse ## Basic Information - **Project Name**: sse - **Description**: 是一种允许服务器向客户端推送实时数据的技术 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-09-25 - **Last Updated**: 2024-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sse ## 介绍 SSE(Server-Sent Events)是一种允许服务器向客户端推送实时数据的技术,它建立在 HTTP 和简单文本格式之上,提供了一种轻量级的服务器推送方式 ,通常也被称为“事件流”(Event Stream)。 他通过在客户端和服务端之间建立一个长连接,并通过这条连接实现服务端和客户端的消息实时推送。 ## SSE的基本特性: - HTML5中的协议,是基于纯文本的简单协议; - 在游览器端可供JavaScript使用的EventSource对象 EventSource提供了三个标准事件,同时默认支持断线重连 | 事件 | 描述 | |-----------|-----------------| | onopen | 当成功与服务器建立连接时产生 | | onmessage | 当收到服务器发来的消息时发生 | | onerror | 当出现错误时发生 | > 传输的数据有格式上的要求,必须为 [data:...\n...\n]或者是[retry:10\n] ## 选择 SSE 还是 WebSocket? - 简单通知场景:如果你只需要服务器向客户端推送简单的通知、事件更新等,而不需要客户端与服务器进行双向通信,那么 SSE 是一个简单而有效的选择。 - 双向通信场景:如果你的应用需要实现实时双向通信,例如在线聊天、协作编辑等,那么 WebSocket 是更合适的选择。 - 兼容性考虑: 如果你的应用可能在一些不支持 WebSocket 的环境中运行,或者需要考虑到更广泛的浏览器兼容性,那么 SSE 可能是一个更可行的选择。 ## 测试 ```shell http://127.0.0.1:8080/chat.html ```