超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[點晴永久免費OA]ChatGPT對話為什么不用Websocket而使用EventSource?

freeflydom
2023年6月25日 8:45 本文熱度 1797
 

在ChatGPT官網(wǎng)我們可以看到,對話的方式僅僅只有一個post請求,而沒有使用IM中使用的websocket鏈接。

同時我們可以看到與普通的post請求不一樣的是,返回信息Response沒有了,取而代之的是EventStream。

那么這個EventStream是什么東西?

一通查證后,發(fā)現(xiàn)這個是Web API中的EventSource接口返回的數(shù)據(jù)。

MDN的官方描述是這樣的(傳送門):

EventSource 接口是 web 內(nèi)容與服務(wù)器發(fā)送事件 一個 EventSource 實例會對HTTP服務(wù)器開啟一個持久化的連接,以 text/event-stream 格式發(fā)送事件,此連接會一直保持開啟直到通過調(diào)用 EventSource.close() 關(guān)閉。

好家伙,還有這好東西。是我以前孤陋寡聞了。

經(jīng)過一番對比,總結(jié)了一下 EventSourceWebsocket 的區(qū)別和優(yōu)劣:

EventSource:

  • 優(yōu)勢:

    • 簡單易用:EventSource API非常簡單,易于使用和理解。

    • 服務(wù)器推送:EventSource適用于服務(wù)器主動向客戶端推送數(shù)據(jù),客戶端只能接收服務(wù)器發(fā)送的事件。

    • 自動重連:EventSource會自動處理連接斷開和重新連接的情況,適用于長期保持連接并接收事件流的場景。

    • 兼容性:EventSource在大多數(shù)現(xiàn)代瀏覽器中得到支持。

  • 劣勢:

    • 單向通信:EventSource只支持從服務(wù)器到客戶端的單向通信,客戶端無法向服務(wù)器發(fā)送數(shù)據(jù)。

    • 較少的功能:相比于WebSocket,EventSource提供的功能較為有限,僅限于接收服務(wù)器發(fā)送的事件。

WebSocket:

  • 優(yōu)勢:

    • 雙向通信:WebSocket支持雙向通信,客戶端和服務(wù)器可以彼此發(fā)送數(shù)據(jù)。

    • 實時性:WebSocket提供了更低的延遲和更快的數(shù)據(jù)傳輸速度,適用于實時性要求較高的應(yīng)用場景。

    • 豐富的功能:WebSocket提供了更多的功能,例如數(shù)據(jù)幀的自定義和二進制數(shù)據(jù)的傳輸?shù)取?/p>

  • 劣勢:

    • 復(fù)雜性:WebSocket API相對于EventSource更為復(fù)雜,使用起來可能需要更多的代碼和理解。

    • 需要服務(wù)器支持:使用WebSocket需要服務(wù)器端實現(xiàn)對應(yīng)的WebSocket協(xié)議,而EventSource只需要服務(wù)器端支持發(fā)送事件即可。

    • 兼容性:相對于EventSource,WebSocket在某些較舊的瀏覽器或網(wǎng)絡(luò)環(huán)境中的支持可能不夠廣泛。

綜上所述,EventSource 適用于服務(wù)器主動推送事件給客戶端,并且在保持長期連接和接收事件流時表現(xiàn)良好。 WebSocket 適用于需要實時雙向通信和更豐富功能的場景,但需要服務(wù)器端和客戶端都支持 WebSocket 協(xié)議,選擇使用哪種技術(shù)應(yīng)基于具體需求和應(yīng)用場景進行評估。

那么有了上面的結(jié)論我們再來看看,為什么 ChatGPT 對話為什么不用 Websocket 而使用 EventSource

當然,ChatGPT 對話可以使用WebsocketEventSource進行實時通信,下面是我個人的總結(jié):

  1. 服務(wù)器推送:EventSource專注于服務(wù)器向客戶端主動推送事件的模型,這對于ChatGPT對話非常適用。ChatGPT通常是作為一個長期運行的服務(wù),當有新的回復(fù)可用時,服務(wù)器可以主動推送給客戶端,而不需要客戶端頻繁發(fā)送請求。

  2. 自動重連和錯誤處理:EventSource具有內(nèi)置的自動重連機制,它會自動處理連接斷開和重新連接的情況。這對于ChatGPT對話而言很重要,因為對話可能需要持續(xù)一段時間,連接的穩(wěn)定性很重要。

  3. 簡單性和易用性:相對于WebSocket,EventSource的API更加簡單易用,只需實例化一個EventSource對象,并處理服務(wù)器發(fā)送的事件即可。這使得開發(fā)者可以更快速地實現(xiàn)對話功能,減少了一些復(fù)雜性。

  4. 廣泛的瀏覽器支持:EventSource在大多數(shù)現(xiàn)代瀏覽器中得到廣泛支持,包括移動端瀏覽器。相比之下,WebSocket在某些舊版本的瀏覽器中可能不被完全支持,需要考慮兼容性問題。

需要注意的是,WebSocket也是一種很好的選擇,特別是當需要實現(xiàn)更復(fù)雜的實時雙向通信、自定義協(xié)議等功能時,或者對瀏覽器的兼容性要求較高時。最終選擇使用WebSocket還是EventSource應(yīng)該根據(jù)具體的項目需求和技術(shù)考慮來確定。




該文章在 2023/6/25 8:45:29 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved