亚洲欧美综合网_国产丶欧美丶日本不卡视频_久久精品亚洲精品国产欧美kt∨ _国产精品自在欧美一区_欧美成人精品激情在线观看 _婷婷丁香久久五月婷婷_国产一本一道久久香蕉_国产www精品_亚洲国产精品久久久久秋霞蜜臀_国产精品xxxxx

ASP.NET Core Web API 流式返回,逐字顯示-當前焦點

2023-04-23 22:19:36 來源:博客園

Websocket、SSE(Server-Sent Events)和長輪詢(Long Polling)都是用于網頁和服務端通信的技術。

Websocket是一種全雙工通信協議,能夠實現客戶端和服務端之間的實時通信。它基于TCP協議,并且允許服務器主動向客戶端推送數據,同時也允許客戶端向服務器發送數據。


(資料圖)

SSE是一種單向通信協議,允許服務器向客戶端推送數據,但不支持客戶端向服務器發送數據。SSE建立在HTTP協議上,通過在HTTP響應中使用特殊的Content-Type和事件流(event stream)格式來實現。

長輪詢是一種技術,客戶端向服務器發送一個請求,并且服務器保持連接打開直到有數據可以返回給客戶端。如果在指定的時間內沒有數據可用,則服務器會關閉連接,客戶端需要重新建立連接并再次發起請求。

New Bing聊天頁面是通過WebSocket進行通信。

Open AI的ChatGPT接口則是通過SSE協議由服務端推送數據

事實上,以上幾種方式包括長輪詢,都可以實現逐字顯示的效果。那還有沒有其他的辦法可以實現這種效果了呢?

流式響應

當客戶端返回流的時候,客戶端可以實時捕獲到返回的信息,并不需要等全部Response結束了再處理。

下面就用ASP.NET Core Web API作為服務端實現流式響應。

返回文本內容

服務端

[HttpPost("text")]public async Task Post(){    string filePath = "文檔.txt";    Response.ContentType = "application/octet-stream";    var reader = new StreamReader(filePath);    var buffer = new Memory(new char[5]);    int writeLength = 0;    //每次讀取5個字符寫入到流中    while ((writeLength = await reader.ReadBlockAsync(buffer)) > 0)    {        if (writeLength < buffer.Length)        {        buffer = buffer[..writeLength];        }        await Response.WriteAsync(buffer.ToString());        await Task.Delay(100);    }}

客戶端

C# HttpClient
public async void GetText(){    var url = "http://localhost:5000/config/text";    var client = new HttpClient();    using HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, url);    var response = await client.SendAsync(httpRequestMessage, HttpCompletionOption.ResponseHeadersRead);    await using var stream = await response.Content.ReadAsStreamAsync();    var bytes = new byte[20];    int writeLength = 0;    while ((writeLength = stream.Read(bytes, 0, bytes.Length)) > 0)    {    Console.Write(Encoding.UTF8.GetString(bytes, 0, writeLength));    }    Console.WriteLine();    Console.WriteLine("END");}

HttpCompletionOption枚舉有兩個值,默認情況下使用的是ResponseContentRead

ResponseContentRead:等到整個響應完成才完成操作

ResponseHeadersRead:一旦獲取到響應頭即完成操作,不用等到整個內容響應

js XMLHttpRequest
<script>    var div = document.getElementById("content")    var url = "http://localhost:5000/config/text"    var client = new XMLHttpRequest()    client.open("POST", url)    client.onprogress = function (progressEvent) {        div.innerText = progressEvent.target.responseText    }    client.onloadend = function (progressEvent) {        div.append("END")    }    client.send()</script>

用axios請求就是監聽onDownloadProgress 了。

瀏覽器是通過Response Header中的Content-Type來解析服務端響應體的。如果后端接口沒有設置Response.ContentType = "application/octet-stream"onprogress只會在響應全部完成后觸發。

返回圖片

服務端

[HttpGet("img")]public async Task Stream(){    string filePath = "pixelcity.png";    new FileExtensionContentTypeProvider().TryGetContentType(filePath, out string contentType);    Response.ContentType = contentType ?? "application/octet-stream";    var fileStream = System.IO.File.OpenRead(filePath);    var bytes = new byte[1024];    int writeLength = 0;    while ((writeLength = fileStream.Read(bytes, 0, bytes.Length)) > 0)    {        await Response.Body.WriteAsync(bytes, 0, writeLength);        await Task.Delay(100);    }}

關鍵詞:

相關文章

熱文推薦

ASP.NET Core Web API 流式返回,逐字顯示-當前焦點
ASP.NET Core Web API 流式返回,逐字顯示-當前焦點

Websocket、SSE(Server-SentEvents)和長輪詢(LongP......更多>

基于Canal實現MySQL 8.0 數據庫數據同步-當前快訊
基于Canal實現MySQL 8.0 數據庫數據同步-當前快訊

前言服務器說明|主機名稱|操作系統|說明||--|--|||192......更多>

即時看!Node工程的依賴包管理方式
即時看!Node工程的依賴包管理方式

在前端工程化中,JavaScript依賴包管理是非常重要的一......更多>

中南建設為子公司文昌中南、蕪湖榮眾合計擔保7952萬元 天天速看
中南建設為子公司文昌中南、蕪湖榮眾合計擔保7952萬元 天天速看

截至公告日,中南建設及控股子公司對外擔保余額為427......更多>

排行推薦

廣東統計局:一季度廣東實現地區生產總值突破3萬億,工業生產增速轉正|世界快報
廣東統計局:一季度廣東實現地區生產總值突破3萬億,工業生產增速轉正|世界快報
上證報中國證券網訊4月23日,廣東統計局發布2023年一... 更多>
全球微頭條丨我國已有20個省份、40余條線路開展車路協同智慧高速公路建設
全球微頭條丨我國已有20個省份、40余條線路開展車路協同智慧高速公路建設
新華社北京4月23日電(記者葉昊鳴)智慧高速公路是交... 更多>
生態環境部:今年一季度全國地表水水質提升
生態環境部:今年一季度全國地表水水質提升
上證報中國證券網訊據生態環境部4月23日消息,生態環... 更多>
第九章 無眠之夜
第九章 無眠之夜
【在這個被墮淵的侵蝕的世界,死亡,變得不再是一切的... 更多>
看熱訊:雅詩閣提前實現全球16萬套的管理目標
一季度,雅詩閣新簽超4000套單元,提前實現全球管理16... 更多>
熱資訊!國資委召開國有企業創建世界一流示范企業推進會
據國資委網站,國資委副主任翁杰明指出,示范企業下一... 更多>
海關總署副署長王令浚會見克羅地亞外交部國務秘書馬圖斯奇 當前焦點
據海關發布微信公眾號,海關總署副署長王令浚21日上午... 更多>
證監會核發首批企業債券注冊批文 短訊
據證監會官網,證監會對國家發展改革委移交的34個企業... 更多>
寧靜的快樂 每日快報
前幾天和朋友去看盆景。朋友隨口說了一句,這么小的一... 更多>
香港特首李家超訪問比亞迪深圳總部|頭條焦點
4月22日,香港特首李家超參觀了比亞迪深圳總部,乘坐... 更多>
熱消息:當AI已成往事,系統會自動再平衡:(第1023篇周策略)2023.04.23
$銀華天璣-悄悄盈(TIA05031)$$銀華天璣-年年紅(TIAA04... 更多>
人工智能和Ai產業鏈是一場財富的再分配
1:創業板左側第一個藍色圈處是2022年4 22-4 30號,... 更多>
財報季最后一周!海天味業、邁瑞醫療、五糧液業績將揭曉,你更期待哪一家?|一周財報前瞻|每日速訊
四月末,A股上市公司年報披露接近尾聲。同花順數據顯... 更多>
2023廣東省博物館五一展覽活動有哪些?
2023廣東省博物館五一展覽活動有哪些?一眼千萬年——... 更多>

捷達VS7什么平臺_捷達vs7是什么平臺

【快播報】后背毛囊炎怎么治好_后背

熱推薦:一年級家長會心得簡短100字

維生素e可以擦臉嗎有什么效果_維生

環球速遞!福建白水洋圖片_白水洋在

天天關注:暁_對于暁簡單介紹

當前熱點-晾鷹臺集蒙古諸部落慰勞遣

晾馬臺村_對于晾馬臺村簡單介紹

【安委辦動態】石湖蕩鎮恬潤新苑開

每日速讀!宇環數控:簽訂1.07億元日

亚洲欧美综合网_国产丶欧美丶日本不卡视频_久久精品亚洲精品国产欧美kt∨ _国产精品自在欧美一区_欧美成人精品激情在线观看 _婷婷丁香久久五月婷婷_国产一本一道久久香蕉_国产www精品_亚洲国产精品久久久久秋霞蜜臀_国产精品xxxxx
国产欧美一区二区精品性色| 亚洲人午夜精品天堂一二香蕉| 欧美丝袜丝交足nylons图片| 91麻豆自制传媒国产之光| 欧美一级片免费看| 91免费在线看| 日韩免费一区二区三区在线播放| 亚洲日韩欧美一区二区在线| 国产精品99久久久久久久女警| www.99精品| 久久久久久久电影| 26uuu精品一区二区| 亚洲成年人影院| 51精品秘密在线观看| 亚洲精品国产成人久久av盗摄| 欧美一级理论片| 亚洲午夜三级在线| 精品一区二区三区蜜桃| 91香蕉视频污在线| 自拍偷拍亚洲综合| 波多野洁衣一区| 国产精品美日韩| www.欧美.com| 亚洲乱码中文字幕| 欧美日韩精品一区视频| 日韩电影免费在线看| 欧美电影免费观看完整版| 久久精品国产99国产| 久久精品男人的天堂| 国产一区二区三区免费看| 中文字幕第一区二区| 亚洲成a人片综合在线| 欧美一区二区三区性视频| 91精品欧美一区二区三区综合在| 亚洲国产精品久久久久婷婷884| 激情偷乱视频一区二区三区| 日韩视频永久免费| 成人动漫中文字幕| 樱桃国产成人精品视频| 欧美撒尿777hd撒尿| 天堂在线一区二区| 久久久久久免费毛片精品| 不卡视频一二三四| 亚洲伦在线观看| 国产视频一区二区三区在线观看| 日韩欧美成人午夜| 成人免费福利片| 国产一区二区三区视频在线播放| 国产校园另类小说区| 91在线观看美女| 免费日韩伦理电影| 欧美国产乱子伦| 欧美精品一区视频| 91超碰这里只有精品国产| 91久久久免费一区二区| 色婷婷av一区二区三区软件 | 日本久久电影网| 青青草国产精品97视觉盛宴| 中文天堂在线一区| 欧美日韩亚洲丝袜制服| 中文字幕在线观看一区二区| 欧美一区二区观看视频| 久久成人免费网| 亚洲一区二区三区四区不卡| 久久久久9999亚洲精品| 日韩一级欧美一级| 69成人精品免费视频| 国产在线视频不卡二| 日韩avvvv在线播放| 亚洲va在线va天堂| 亚洲h动漫在线| 亚洲午夜免费电影| 亚洲免费在线视频| 在线观看免费亚洲| 欧美午夜视频网站| 欧美一区二区三区色| 91精品国产综合久久蜜臀| 日韩一区二区麻豆国产| 久久亚洲精品国产精品紫薇| 欧美极品xxx| 亚洲精品视频观看| 午夜日韩在线电影| 国产成人在线网站| 91在线观看视频| 欧美一区二区三区四区五区| 精品国产百合女同互慰| 国产精品久久久久久一区二区三区 | 欧美精品成人一区二区三区四区| 国产精品久久毛片| 精品一区二区三区在线视频| 日本道色综合久久| 欧美亚洲尤物久久| 国产欧美日韩精品在线| 另类小说综合欧美亚洲| 亚洲电影第三页| 日本麻豆一区二区三区视频| 91极品视觉盛宴| 欧美成人女星排行榜| 欧美影片第一页| 2023国产精品自拍| 国产福利精品一区二区| 欧美激情一区二区三区蜜桃视频| 久国产精品韩国三级视频| 国产日本一区二区| 久久成人羞羞网站| 国产经典欧美精品| 久久亚洲精品国产精品紫薇| 91蝌蚪porny| 欧美一区二区福利视频| 日韩久久久精品| 91麻豆国产福利精品| 91视频观看视频| 亚洲一区二区三区四区五区中文| 久久理论电影网| 久久日韩粉嫩一区二区三区| 欧美日韩国产区一| 99re8在线精品视频免费播放| 欧美日高清视频| 亚洲国产成人私人影院tom| 亚洲香蕉伊在人在线观| 日韩精品1区2区3区| 日韩精品三区四区| 色婷婷综合久久久久中文一区二区 | 欧美日本在线视频| 亚洲视频一区二区免费在线观看| 成人av在线播放网址| 久久综合999| 国产自产高清不卡| 精品福利一区二区三区| 久久精品99国产精品日本| 日韩欧美一二三| 九九精品视频在线看| 在线观看成人小视频| 亚洲免费高清视频在线| 色狠狠色噜噜噜综合网| 亚洲小说欧美激情另类| 国产成人午夜精品影院观看视频| 日韩精品一区二区三区在线观看 | 国产99一区视频免费| 久久综合九色综合97婷婷| 亚洲午夜久久久| 欧美激情综合在线| 国产精品欧美久久久久无广告| 欧美高清一级片在线观看| 欧美v日韩v国产v| 中文字幕亚洲电影| 一区二区三区日韩精品| 亚洲免费色视频| 亚洲观看高清完整版在线观看| 九九视频精品免费| 亚洲国产日日夜夜| 另类小说色综合网站| 91官网在线观看| 久久久国产精华| 日韩中文欧美在线| 精品免费国产二区三区| 亚洲精品乱码久久久久久黑人 | 国产精品无圣光一区二区| 午夜精品在线视频一区| 色综合久久66| 色呦呦网站一区| 国产精品久久久久一区| 91日韩精品一区| 麻豆精品久久久| 欧美日韩免费视频| 成人国产精品视频| 日韩在线a电影| 中文字幕在线不卡一区 | 中文字幕在线不卡一区二区三区| 久久国产精品露脸对白| 五月天国产精品| 国产精品国产三级国产专播品爱网| 欧美美女直播网站| 99国产精品99久久久久久| 狠狠色丁香久久婷婷综| 亚洲成人黄色小说| 国产mv日韩mv欧美| 国产成人在线视频播放| 欧美午夜理伦三级在线观看| 成人黄色小视频| 午夜欧美一区二区三区在线播放| 日韩欧美一区电影| 91极品视觉盛宴| 国产剧情av麻豆香蕉精品| 亚洲国产cao| 亚洲精品国产高清久久伦理二区| 日日噜噜夜夜狠狠视频欧美人| 亚洲永久免费av| 国产精品超碰97尤物18| 国产免费成人在线视频| 精品免费视频.| 国产白丝精品91爽爽久久| 一区二区在线观看视频在线观看| 久久夜色精品国产噜噜av| 欧美精品久久99| 欧美三级视频在线播放| 欧美一a一片一级一片| 国产精品影视天天线| 国产一二三精品| 亚洲国产毛片aaaaa无费看|