• 首页
  • 归档
    • 时间线
    • 文章分类
    • 文章标签
  • 留言
  • 关于
  • 首页
    归档
    时间线
    文章分类
    文章标签
    留言
    关于
    VenDream’s Blog
    VenDream’s Blog
    智性孤独
  • 首页
  • 归档
    • 时间线
    • 文章分类
    • 文章标签
  • 留言
  • 关于
  • 首页
    归档
    时间线
    文章分类
    文章标签
    留言
    关于
    前端(3)
    音乐(2)
    react(2)
    notion(1)
    windows(1)
    字体(1)
    StableDiffusion(1)
    WebSocket(1)
    SSE(1)
    AI(1)
    RSC(1)
    Avicii(1)
    心情随想(1)音乐分享(2)技术分享(1)生命在于折腾(1)阅读笔记(4)
    © 2021-2025 VenDream.

    Powered by NotionNext 4.7.0

    WebSocket vs Server-Sent events 阅读笔记
    WebSocket vs Server-Sent events 阅读笔记
    阅读笔记|2024-2-23|最后更新: 2024-3-28
    前端
    WebSocket
    SSE
    type
    status
    date
    Feb 23, 2024 10:21 AM
    slug
    summary
    tags
    category
    icon
    password
     
    原文:https://minompi.medium.com/websocket-vs-server-sent-events-67c73d07b90f

    总结

    偶然听闻ChatGPT Web的问答交互通信方式由SSE改回了WebSocket,借此机会了解一下二者的优缺点。
     
    Websocket
    wiki:https://en.wikipedia.org/wiki/WebSocket
     
    notion image
     
    优点:
    • 全双工通信,服务端和客户端支持在同一个TCP连接上同时接收和发送消息
    • 没有使用XmlHttpRequest,header信息不会每次通信时都发送,传输payload更小
    • 支持传输二进制数据和UTF-8格式
     
    限制:
    • 不支持重连,需要手动设计实现
    • 不支持2011年之前的浏览器
    • 不兼容部分企业防火墙的数据包检查功能
    • 与基于header的口令鉴权会有冲突,需分开处理或者换成查询参数
     
    常见场景:
    • 实时聊天
    • 多人游戏
    • 协同编辑/开发
    • 社交动态
    • 体育动态
    • …
     
    Server-Sent Events (SSE)
    wiki:https://en.wikipedia.org/wiki/Server-sent_events
     
    notion image
     
    优点:
    • 基于HTTP协议,部署实现更简单
    • 内置重连机制(event-id)
    • 不受企业防火墙影响
     
    限制:
    • 单工通信,只支持服务器推送消息
    • 只支持UTF-8格式,不支持二进制数据,需要编码为Base64
    • 非HTTP/2协议下,浏览器有最大连接数限制(6)
    • 浏览器兼容性不是特别好,但有polyfill实现
     
    常见场景:
    • 股票客户端
    • 推特动态
    • 推送通知
     

     
    总的来说,二者没有哪个更好一说,根据具体场景按需选择即可。
    延伸阅读:Server-Sent Events 教程
     
     
    Why React Server Components Are Breaking Builds to Win Tomorrow 阅读笔记How Stable Diffusion works 阅读笔记
    Loading...