簡體   English   中英

當我們有 http2 雙向流時,為什么我們需要 SSE?

[英]Why do we need SSE when we have http2 bidirectional streaming?

這可能看起來很簡單,但我在互聯網上沒有找到任何答案。

我對SSE (服務器發送事件)的理解是,當服務器上的數據可用時,數據通過TCP連接從服務器發送到客戶端,如果連接關閉,客戶端會打開一個新連接。

http2雙向流中,我們在服務器可用且連接保持打開時從服務器流式傳輸數據。 這與SSE相同。

我不是指http2服務器推送。

在 HTTP/2 連接中,您有單獨的流。 這些流(推送承諾除外)需要由客戶端打開以發送 HTTP 請求,然后服務器可以發送答案。

所以你仍然需要一個 stream 被客戶端打開,等待服務器發送一些數據。

然后整個連接可能會中斷(就像一個 HTTP/1.1 連接,或者一個普通的 TCP 連接),這意味着客戶端仍然需要打開一個新連接(並在那里打開一個 stream)。

所以 HTTP/2 在這里沒有解決任何會使 SSE 變得多余的問題。

正如 Yami Odymel 在評論中提到的,SSE 規范還指定了發送消息的確切格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM