欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

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

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

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

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

那么這個EventStream是什么東西?

一通查證后,發現這個是Web API中的EventSource接口返回的數據。

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

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

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

經過一番對比,總結了一下 EventSourceWebsocket 的區別和優劣:

EventSource:

  • 優勢:

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

    • 服務器推送:EventSource適用于服務器主動向客戶端推送數據,客戶端只能接收服務器發送的事件。

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

    • 兼容性:EventSource在大多數現代瀏覽器中得到支持。

  • 劣勢:

    • 單向通信:EventSource只支持從服務器到客戶端的單向通信,客戶端無法向服務器發送數據。

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

WebSocket:

  • 優勢:

    • 雙向通信:WebSocket支持雙向通信,客戶端和服務器可以彼此發送數據。

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

    • 豐富的功能:WebSocket提供了更多的功能,例如數據幀的自定義和二進制數據的傳輸等。

  • 劣勢:

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

    • 需要服務器支持:使用WebSocket需要服務器端實現對應的WebSocket協議,而EventSource只需要服務器端支持發送事件即可。

    • 兼容性:相對于EventSource,WebSocket在某些較舊的瀏覽器或網絡環境中的支持可能不夠廣泛。

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

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

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

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

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

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

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

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




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