首页 > 其他分享 >eventSource(SSE)的实践

eventSource(SSE)的实践

时间:2023-11-15 10:46:12浏览次数:32  
标签:浏览器 实践 EventSource 服务器发送 SSE eventSource websocket event

 

1. 概述

目前JS实时通信方式主要由:websocket、socket.io、eventSource(SSE)这三种方式。对于这三种方式,不同客户端场景有着其各自的优势。

EventSource是单向通信,而websocket是双向通信。在新闻推送、股票行情这种只需要服务器发送消息给客户端场景,使用SSE更加合适,另外SSE是使用HTTP传输的。而websocket要求全双工连接和一个新的websocket服务器去处理,
​因为各有所长,我们只需要根据实际应用场景,去选择最优的应用方案。

EventSource 对象接口用于接收服务器发送的事件。它通过 HTTP 连接到服务器,已 text/event-stream 格式接收事件,不关闭连接。
​EventSource 对象主要用于 Server-Sent Events(简称 SSE)的技术。这是一种能让浏览器通过 HTTP 连接自动收到服务器端更新的技术。
​这个技术的作用是可以完成从服务器端到客户端(浏览器)单向的消息传递。因此我们可以用这个来做推送。


EventSource相关文档:https://developer.mozilla.org/zh-CN/docs/Web/API/EventSource

 

2. 兼容性

 

3. 实例

(1)服务端(以下为 node-expressjs搭建的一个简易后台接口)

 

注意:

a. 设置响应头,必须包含以上几个!

b. 后端返回需要指定格式,类似上图红线框中示例,否则浏览器端的 onmessage函数接收不到数据!(具体可查看 EventSource相关文档的 “服务器发送事件”中的事件流格式 )

 

 

 

(2)浏览器端(找个fetch-event-source插件处理一些自定义配置)

安装依赖:npm install --save @microsoft/fetch-event-source 
引入插件:import { fetchEventSource } from '@microsoft/fetch-event-source';     最后,在相应的程序里处理以下代码即可。 

浏览器端的console输出结果如下:

 

 

 

 

翻译

搜索

复制

标签:浏览器,实践,EventSource,服务器发送,SSE,eventSource,websocket,event
From: https://www.cnblogs.com/bky419/p/17833257.html

相关文章

  • 实践4:求阶乘
    题目描述x的阶乘,即=x*(x-1)*(x-2)*···*2*1。输入一个整数m,计算并输出其阶乘的值。输入格式一个整数。输出格式一个整数。输入输出样例输入4输出24说明m=4,m!=4!=4*3*2*1=24。提示0的阶乘为1。答案:x=int(input())n=1ifx==0:......
  • SpringBoot系列之集成Redission入门与实践教程
    Redisson是一款基于java开发的开源项目,提供了很多企业级实践,比如分布式锁、消息队列、异步执行等功能。本文基于Springboot2版本集成redisson-spring-boot-starter实现redisson的基本应用软件环境:JDK1.8SpringBoot2.2.1Maven3.2+Mysql8.0.26redisson-spring-boot-starter3.15.......
  • 加载网络映射盘中的assembly失败的处理办法
     2023年11月14日10:36:28有群友提出这样的问题:我在客户的机器安装插件后,报这个错,大概会是什么原因的?按照提示信息,打开微软的网页:http://go.microsoft.com/fwlink/?LinkId=155569同时也搜索到了这篇文章:https://www.cnblogs.com/1175429393wljblog/p/5065559.html上面这......
  • Anolis OS 23 基于 AMD 实例的 AI 推理优化实践 | 龙蜥技术
    编者按:龙蜥操作系统AnolisOS23是龙蜥社区基于操作系统分层分类理论,面向上游原生社区独立选型,全面支持智算的首款国产操作系统,为开发人员提供了强大的AI开发平台,通过支持龙蜥生态软件仓库(EPAO),AnolisOS23实现了对主流AI框架的全面支持,使得AI开发更加便捷高效。本文将基......
  • TiDB实践安装及性能测试(上)
    作者:TiDBer_小阿飞TIDB分布式数据库离线实施方案及相关测试(测试版)第一部分 ~~ ~~硬件资源一、硬件资源现有硬件资源环境统计如下|||||||||--|------------|---|-----|----|---------|-------------||序号|IP|CPU|存储|内存|Hostname......
  • TiDB实践安装及性能测试(下)
    作者:TiDBer_小阿飞第六部分 数据备份及数据迁移一、TiDBDataMigration(DM)安装部署TiDBDataMigration(DM)是一款便捷的数据迁移工具,支持从与MySQL协议兼容的数据库(MySQL、MariaDB、AuroraMySQL)到TiDB的全量数据迁移和增量数据同步。1.解压DM包在TOOLS的文件......
  • 幸福城市平台:数据库选型与优化实践
    作者:Fly-bird随着外面平台和外卖行业的兴起,越来越多的企业开始涉足本地化的外卖、配送、跑腿等业务,目前市场基本是美团和饿了么的天下,但是在一些三线城市领域,存在着最本土化的本地电商平台-幸福城市,幸福城市不是一个平台,是N多个三线城市各自的品牌,只是使用了同一套技术平台。幸福......
  • Elasticsearch【正则搜索】分析&实践
    Elasticsearch【正则搜索】分析&实践RegexpQueryregexp允许使用正则表达式进行term查询.注意regexp如果使用不正确,会给服务器带来很严重的性能压力。比如.*开头的查询,将会匹配所有的倒排索引中的关键字,这几乎相当于全表扫描,会很慢。因此如果可以的话,最好在使用正则前,加上匹配的......
  • FTDI的MPSSE使用示例(SPI协议背景知识简介及其FT4232H配成USB to SPI使用实例)
    MPSSEApplicationExample:http://ftdichip.cn/Support/SoftwareExamples/MPSSE.htmMPSSE:AN_129FTDIUSBToJTAGTAPExampleMPSS:AN_114FTDIUSBtoSPIExampleMPSSE:AN_113FTDIUSBtoI2CExampleMPSS:AN_114FTDIUSBtoSPIExampleFTDIMPSSE(Multi-Pr......
  • 实践3:范围内37的倍数求和
    题目描述输入一个整数n,输出小于n并且能被37整除的所有自然数之和。没有则输出0。输入格式一个整数。输出格式一个整数。输入输出样例输入138输出137输入275输出2111说明/提示如输入的值为75,小于75并且能被37整除的自然数为3774。即和为37+74......