精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一文帶你學(xué)會SSE,你學(xué)會了嗎?

開發(fā) 前端
Server-Sent Events 是一種允許服務(wù)器向?yàn)g覽器發(fā)送實(shí)時更新的技術(shù)。不同于WebSocket的全雙工通信方式,SSE更專注于單向的數(shù)據(jù)流,即從服務(wù)器到客戶端的數(shù)據(jù)推送。

隨著Web應(yīng)用的不斷發(fā)展,實(shí)時數(shù)據(jù)傳輸?shù)男枨笞兊迷絹碓狡毡椤鹘y(tǒng)的輪詢方法不僅效率低下,而且在高并發(fā)情況下會對服務(wù)器造成不必要的壓力。為了解決這個問題,Server-Sent Events (SSE) 應(yīng)運(yùn)而生,它允許服務(wù)器端主動向客戶端推送更新。

Server-Sent Events

Server-Sent Events 是一種允許服務(wù)器向?yàn)g覽器發(fā)送實(shí)時更新的技術(shù)。不同于WebSocket的全雙工通信方式,SSE更專注于單向的數(shù)據(jù)流,即從服務(wù)器到客戶端的數(shù)據(jù)推送。

這種方式對于需要實(shí)時更新的場景非常有用,當(dāng)前主流的大模型平臺,比如ChatGPT、通義千問、文心一言,對話時采用的就是SSE。

SSE 本質(zhì)是一個基于 http 協(xié)議的通信技術(shù)。

SSE的應(yīng)用

引入依賴

spring-boot-starter-web 中默認(rèn)已經(jīng)引用了 sse,所以我們不需要額外引入其他依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

基本用法

@RestController
public class SseController {

    @GetMapping("/sse")
    public SseEmitter handleSse() {
        SseEmitter emitter = new SseEmitter();

        // 異步處理發(fā)送事件
        new Thread(() -> {
            try {
                // 推送事件
                emitter.send("實(shí)時消息:你好!");
                Thread.sleep(1000);  // 模擬延時
                emitter.send("實(shí)時消息:更新來了!");
                emitter.complete(); // 結(jié)束推送
            } catch (Exception e) {
                emitter.completeWithError(e); // 異常處理
            }
        }).start();

        return emitter;
    }
}

客戶端代碼

const eventSource = new EventSource("/sse");

// 處理服務(wù)器推送的消息
eventSource.onmessage = function(event) {
    console.log(event.data);
};

// 處理連接關(guān)閉或錯誤
eventSource.onerror = function() {
    console.log("連接出現(xiàn)問題,自動重連...");
};

效果預(yù)覽

圖片圖片

為什么會這么多,那是因?yàn)榭蛻舳说淖詣又剡B機(jī)制,無需我們手動維護(hù),客戶端會自動發(fā)起重連。

SseEmitter

其實(shí)sse的核心,就是SseEmitter這個類,是 Spring 提供的一個類,用于處理 Server-Sent Events (SSE)。它允許服務(wù)器端以流的形式推送事件給客戶端,而不需要客戶端不斷輪詢服務(wù)器。

1.構(gòu)造函數(shù)

  • SseEmitter():創(chuàng)建一個默認(rèn)超時時間的 SseEmitter 實(shí)例。默認(rèn)超時為 30 秒。
  • SseEmitter(Long timeout):創(chuàng)建一個帶有自定義超時時間的 SseEmitter 實(shí)例。

timeout:指定以毫秒為單位的超時時間。如果設(shè)置為 0L,則連接永遠(yuǎn)不會超時。

2.核心方法

  • send(Object object):向客戶端發(fā)送一條消息。

object:要發(fā)送的數(shù)據(jù),可以是任何類型的對象。

此方法會將數(shù)據(jù)直接發(fā)送到客戶端,并在響應(yīng)體中流式返回。

  • send(SseEmitter.SseEventBuilder event):以事件構(gòu)建器的形式發(fā)送一條消息。
  • SseEventBuilder 是用來構(gòu)建發(fā)送事件的一個內(nèi)部類,允許你自定義事件的各個屬性,如 id、data、name 等。

  • complete():表示 SSE 流完成并關(guān)閉連接。服務(wù)器告訴客戶端,事件流已經(jīng)結(jié)束。

  • completeWithError(Throwable ex):在發(fā)生錯誤時關(guān)閉連接,并以錯誤的形式告知客戶端。

3.回調(diào)函數(shù)

  • onCompletion(Runnable callback):指定當(dāng) SSE 連接完成(正常關(guān)閉)時執(zhí)行的回調(diào)函數(shù)。
  • onTimeout(Runnable callback):指定當(dāng)連接超時時執(zhí)行的回調(diào)函數(shù)。
  • onError(Consumer<Throwable> callback):指定當(dāng)發(fā)生錯誤時執(zhí)行的回調(diào)函數(shù)。這個錯誤可能是由于網(wǎng)絡(luò)連接問題、客戶端斷開等原因。

4.SseEventBuilder 內(nèi)部類

SseEmitter.SseEventBuilder 是用于構(gòu)建 SSE 事件的一個類,允許自定義事件的各個部分:

  • SseEmitter.event():返回一個新的 SseEventBuilder 實(shí)例,用于構(gòu)建事件。
  • id(String id):設(shè)置事件的唯一標(biāo)識符。客戶端可以通過這個 ID 識別和處理事件。
  • name(String name):設(shè)置事件的名稱。客戶端可以通過這個名稱識別不同類型的事件,SSE 響應(yīng)中會顯示為 event: name。
  • data(Object data):設(shè)置要發(fā)送的數(shù)據(jù)。可以是文本、JSON 等類型,最終會在客戶端的 SSE 流中顯示為 data: xxx。
  • reconnectTime(long milliseconds):告訴客戶端在多少毫秒后嘗試重新連接。如果連接中斷,客戶端會在指定時間后自動重連。
  • comment(String comment):向客戶端發(fā)送一條注釋(不會觸發(fā)事件)。

目前 SseEmitter 是基于 每個客戶端請求獨(dú)立管理 的對象,因此不適合將其直接交由 Spring 管理為單例或共享對象。

每次請求應(yīng)手動創(chuàng)建新的 SseEmitter 實(shí)例,并配置合適的超時時間。對于每個連接,SseEmitter 都是短暫的,使用完畢后應(yīng)該調(diào)用 complete() 或 completeWithError() 方法來釋放資源。

SSE 與 WebSocket 對比

圖片圖片

小結(jié)

  • 相比輪詢,SSE 通過長連接減少了網(wǎng)絡(luò)開銷和服務(wù)器壓力。
  • SseEmitter 適用于需要服務(wù)器實(shí)時推送數(shù)據(jù)的場景,特別是實(shí)時通知、動態(tài)更新等需求
  • 相比websocket,在某些場景下,SSE 更加易用,且占用的資源較少
責(zé)任編輯:武曉燕 來源: Java技術(shù)指北
相關(guān)推薦

2024-03-01 08:13:45

Shell編程解釋器

2023-03-10 22:08:20

2023-07-31 08:18:50

Docker參數(shù)容器

2024-10-28 00:00:03

IP屬地地址

2023-08-01 12:51:18

WebGPT機(jī)器學(xué)習(xí)模型

2024-01-02 12:05:26

Java并發(fā)編程

2024-01-19 08:25:38

死鎖Java通信

2023-07-26 13:11:21

ChatGPT平臺工具

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-01-10 08:43:15

定義DDD架構(gòu)

2022-03-08 08:39:22

gRPC協(xié)議云原生

2023-08-26 21:34:28

Spring源碼自定義

2022-07-13 08:16:49

RocketMQRPC日志

2023-05-05 06:54:07

MySQL數(shù)據(jù)查詢

2023-03-26 22:31:29

2022-12-06 07:53:33

MySQL索引B+樹

2023-07-30 22:29:51

BDDMockitoAssert測試

2023-06-26 13:08:52

GraphQL服務(wù)數(shù)據(jù)

2022-06-16 07:50:35

數(shù)據(jù)結(jié)構(gòu)鏈表

2024-03-06 08:28:16

設(shè)計模式Java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

今天免费高清在线观看国语| 亚洲国产成人精品电影| 色乱码一区二区三在线看| 自拍偷拍18p| 国产精品成人a在线观看| 欧美久久婷婷综合色| 成人免费a级片| 成人在线免费视频| 亚洲黄色免费在线观看| 久久久免费在线观看| 亚洲电影免费观看高清完整版在线 | 黄色成人在线网址| 国内精品福利| 亚洲国产乱码最新视频| 欧美另类一区| 精品国产亚洲AV| 免费精品视频| 色在人av网站天堂精品| 中文字幕av久久爽一区| 97视频一区| 欧美日韩中文一区| 欧美 日韩 国产一区| 中文在线免费| 欧美高清一级片在线观看| 成人综合av网| 97精品人妻一区二区三区香蕉| 亚洲第一区色| 欧美精品在线观看| 欧美a级片免费看| 香蕉久久夜色精品国产更新时间| 日韩亚洲欧美综合| www.com黄色片| 亚洲国产福利| 五月激情综合婷婷| 久久综合久久网| 国产三级在线播放| 国产精品美女久久久久高潮| 欧美在线视频一区二区三区| 日本久久一级片| 国产不卡高清在线观看视频| 成人精品一区二区三区电影黑人| 99re这里只有精品在线| 国产精品尤物| 国外成人免费在线播放| 久久久久久蜜桃| 亚洲欧美亚洲| 久久亚洲影音av资源网 | 日本一区二区成人| 欧美成人免费在线观看| 久久国产精品高清| 99久久久无码国产精品免费| 成人午夜精品视频| 亚洲激情精品| 欧美黑人巨大精品一区二区| 美国黄色小视频| 欧美日韩一区二区国产| 欧美猛男性生活免费| 极品盗摄国产盗摄合集| 欧美一区精品| 欧美激情在线观看视频| 五月天婷婷网站| 夜夜嗨av一区二区三区网站四季av| 久久久亚洲国产天美传媒修理工| 国产在线视频99| 亚洲精品孕妇| 秋霞av国产精品一区| 亚洲精品男人的天堂| 久热re这里精品视频在线6| 日韩免费在线免费观看| 性色av一区二区三区四区| 麻豆国产欧美日韩综合精品二区| 国产精品一香蕉国产线看观看| 在线观看国产小视频| 精品夜夜嗨av一区二区三区| 91精品国产99久久久久久红楼| 国产xxxx孕妇| 成人av电影在线网| 欧美欧美一区二区| 91欧美在线视频| 亚洲靠逼com| 欧美不卡在线播放| 欧美日韩视频免费观看| 欧美精品乱人伦久久久久久| 国产成人久久久精品一区| 亚洲视频在线观看一区二区三区| 日本欧美一区| 91麻豆精品91久久久久久清纯| 色婷婷狠狠18禁久久| 综合亚洲自拍| 精品国产一区二区三区在线观看 | 亚洲成人福利视频| 日韩三区视频| 久久黄色av网站| 久久久久久久99| 日韩电影免费一区| 91精品在线一区| 日韩毛片在线一区二区毛片| 国产欧美一区二区精品性| 法国空姐在线观看免费| 僵尸再翻生在线观看免费国语| 欧美亚洲图片小说| 成人做爰69片免费| 欧美色爱综合| 91国产美女视频| 一级特黄aaa| 99国产精品视频免费观看| 亚洲一区二区三区欧美| 91九色国产在线播放| 欧美视频在线不卡| www.超碰97| 亚洲免费二区| 国产精品吊钟奶在线| 色偷偷av亚洲男人的天堂| 日本三级中国三级99人妇网站| 日韩黄色影院| 精品久久久久久中文字幕| 91九色在线观看| 午夜精品久久久久久久白皮肤| 国产伦精品一区二区免费| 久久不见久久见中文字幕免费| 久久久97精品| 国产精品成人国产乱一区 | 亚洲精品影院| 天天干在线播放| 国产一区二区三区日韩| 欧美一区二区视频17c| 91吃瓜在线观看| 日韩一区二区麻豆国产| 2014亚洲天堂| 奇米影视一区二区三区小说| 久久久亚洲综合网站| 国产天堂在线播放视频| 欧美一级日韩免费不卡| 香蕉久久久久久久| 肉肉av福利一精品导航| 久久久人人爽| 伊人网在线播放| 亚洲国产精品久久91精品| 九九热视频精品| 国产精品一区三区| 欧美a级黄色大片| 999精品视频在线观看| 在线日韩av观看| 夜夜爽妓女8888视频免费观看| 91亚洲资源网| 国产黄色一级网站| 久久亚洲道色| 91wwwcom在线观看| 亚洲三级黄色片| 五月天一区二区| 黄色国产在线观看| 午夜在线视频观看日韩17c| 国产一区二区视频在线免费观看| 欧美高清另类hdvideosexjaⅴ| 蜜桃av一区二区| xxx欧美精品| 国产又色又爽又黄又免费| 国产精品乱人伦| 看看黄色一级片| 91精品精品| 99国产超薄肉色丝袜交足的后果| 在线heyzo| 欧美不卡一二三| 日本天堂网在线观看| 99re66热这里只有精品3直播| 波多野结衣家庭教师在线| 天美av一区二区三区久久| 奇米4444一区二区三区| av在线天堂| 91精品国产综合久久福利软件| 免费在线看黄网址| av一二三不卡影片| 久久九九国产视频| 亚洲九九视频| 黄色一区三区| 91九色综合| 欧美国产在线电影| 深夜视频在线免费| 色屁屁一区二区| 国产麻豆a毛片| 国产成人99久久亚洲综合精品| 缅甸午夜性猛交xxxx| 精品久久久久久久| 91视频最新| 中文字幕不卡三区视频| 日韩在线观看高清| 人妻无码中文字幕| 欧美视频你懂的| 久久精品国产亚洲AV无码男同| 成av人片一区二区| 椎名由奈av一区二区三区| 国产精品视频久久久久| 麻豆传媒在线完整视频| 亚洲第一天堂无码专区| 国产精品熟女视频| 一区二区三区在线观看网站| 久久亚洲AV成人无码国产野外| 青青草国产精品亚洲专区无| 国产黄色激情视频| 国产精品羞羞答答在线观看| 亚洲自拍小视频| 91传媒免费视频| 在线观看特色大片免费视频| 中文字幕日韩综合av| 欧美 日韩 人妻 高清 中文| 欧美亚洲动漫精品| 亚洲免费激情视频| 亚洲色欲色欲www| 受虐m奴xxx在线观看| 国产成人99久久亚洲综合精品| 在线观看免费成人av| 亚洲麻豆视频| 毛片在线视频观看| 清纯唯美综合亚洲| 久热这里只精品99re8久| 日韩高清一区| 国产精品揄拍一区二区| 三妻四妾的电影电视剧在线观看| 四虎成人精品永久免费av九九| 一区二区三区在线看| 色哟哟网站在线观看| 视频一区欧美精品| 精品丰满人妻无套内射| 天天综合网网欲色| 色综合电影网| 九九视频精品全部免费播放| 国产精选一区二区| 亚洲午夜精品久久久| 五月天丁香视频| 国产精品美女久久久久久| 国产美女视频免费观看下载软件| 精品一区二区三区免费播放| 日本www.色| 黄视频网站在线看| 欧美精品久久一区二区三区| 欧美人一级淫片a免费播放| 精品久久久久久电影| 国产精品30p| 亚洲一级二级三级在线免费观看| 日本中文在线视频| 18欧美亚洲精品| 日韩在线视频免费看| 中文字幕+乱码+中文字幕一区| 美女100%无挡| 国产清纯在线一区二区www| 伊人网伊人影院| 久久精品一区二区三区不卡 | 国产精品二区一区二区aⅴ| 樱花影视一区二区| 久久久国产精品黄毛片| 一区二区三区四区在线免费观看| 99热精品免费| 亚洲综合色噜噜狠狠| www.99re7.com| 图片区小说区国产精品视频| 日韩精品一区二区av| 精品久久久香蕉免费精品视频| 91香蕉在线视频| 欧美日韩在线第一页| 无码人妻aⅴ一区二区三区有奶水| 一本久道久久综合中文字幕| 亚洲av无码不卡| 欧美日本乱大交xxxxx| 99久久精品无免国产免费 | 国产精品一区av| 疯狂欧洲av久久成人av电影| 91精品久久久久久蜜桃| 国产成人澳门| 日本婷婷久久久久久久久一区二区| 精品国产91| 国产成人精品免费看在线播放| 欧美在线首页| 欧美 日本 亚洲| 蜜桃精品视频在线观看| 伊人色在线视频| www.日韩av| 中文字幕av久久爽一区| 亚洲乱码精品一二三四区日韩在线| 99久久精品久久亚洲精品| 亚洲综合在线视频| 天天干天天操天天操| 欧美精品第1页| 神马午夜电影一区二区三区在线观看 | 日本不卡高字幕在线2019| 成人交换视频| 国产精华一区| 欧美手机在线| 999一区二区三区| 久久九九电影| 亚洲热在线视频| 久久久一区二区| 18岁成人毛片| 色婷婷综合五月| 精品国产av 无码一区二区三区| 精品久久久久久最新网址| 国产精品视频一区二区久久| 色综合久久88色综合天天看泰| 三上悠亚一区二区| 波多野结衣精品久久| av资源久久| 国产精品裸体瑜伽视频| 精品亚洲成a人| 蜜桃传媒一区二区亚洲av| 亚洲日本一区二区| 中文字幕免费视频观看| 亚洲第一精品自拍| jizz性欧美10| 国产精品视频导航| 亚洲免费成人av在线| 永久免费看av| 久久精品国产秦先生| 日韩片在线观看| 亚洲综合在线视频| 国产精品无码天天爽视频| 亚洲一二三在线| 亚洲精品88| 国产精品免费一区二区三区观看| 91亚洲自偷观看高清| wwwxxx黄色片| 99精品视频在线观看免费| 欧美另类视频在线观看| 欧美区视频在线观看| 黄色影院在线播放| 欧美一级成年大片在线观看| 中文字幕av一区二区三区四区| 一区二区精品国产| 日韩精品成人一区二区三区| 国产精品边吃奶边做爽| 精品国产成人av| 欧美 日韩 人妻 高清 中文| 九九久久综合网站| 久久精品九色| 青青草免费在线视频观看| 久久狠狠亚洲综合| 久久久精品成人| 欧美色涩在线第一页| 福利在线视频导航| 国产精品成人免费电影| 国精一区二区| 男人的天堂日韩| 国产欧美日韩视频在线观看| 91丝袜一区二区三区| 亚洲另类激情图| 欧美大片免费高清观看| 欧美连裤袜在线视频| 久久五月激情| 亚洲精品国产熟女久久久| 91极品美女在线| jizz在线观看| 成人激情视频在线播放| 一区二区日韩欧美| 国产免费无码一区二区| 午夜在线电影亚洲一区| 天堂av中文在线资源库| 欧美在线视频免费| 欧美精品一二| 天堂av8在线| 亚洲精品国久久99热| 欧美一区二区公司| 欧美最猛性xxxxx免费| 精品久久影院| 婷婷激情小说网| 亚洲一卡二卡三卡四卡无卡久久| 免费观看黄一级视频| 日韩精品一区国产麻豆| 成人免费毛片播放| 麻豆91在线观看| 国产福利视频网站| 日韩精品中文字幕在线不卡尤物| 免费不卡av| 久久国产欧美精品| 奇米影视7777精品一区二区| 国产三级精品三级观看| 日韩精品专区在线影院重磅| av电影院在线看| 日韩精品最新在线观看| 国产在线不卡一区| 永久免费看片在线播放| 中日韩午夜理伦电影免费| 国产一区二区高清在线| 免费av观看网址| 国产精品久久福利| 色欲av伊人久久大香线蕉影院| 日韩av电影手机在线| 91影院成人| 超碰97在线资源站| 欧美日韩日日夜夜| av白虎一区| 一本色道婷婷久久欧美| www.欧美日韩国产在线| 久久精品偷拍视频| 久久久欧美一区二区| 日本黄色精品| 尤物网站在线观看| 欧美高清视频不卡网| 无遮挡爽大片在线观看视频| 视频一区二区视频| 久久美女艺术照精彩视频福利播放| 99精品在线看| 国产精品成人一区二区|