本文介紹了文本/事件流與應(yīng)用程序/流之間的區(qū)別是什么的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
@GetMapping(path = "/cars", produces = "text/event-stream")
public Flux<Car> getCarStream() {
System.out.println("application/stream+json");
return this.repository.findCarsBy().log();
}
上面的代碼和下面的代碼有什么區(qū)別:
@GetMapping(path = "/cars", produces = "application/stream+json")
public Flux<Car> getCarStream() {
System.out.println("application/stream+json");
return this.repository.findCarsBy().log();
}
到目前為止,我發(fā)現(xiàn)了相互矛盾的信息:一些人說(shuō)它們都是指服務(wù)器發(fā)送的事件,另一些人說(shuō)它們是有區(qū)別的。
推薦答案
tl;dr:dzone文章是錯(cuò)的,羅森的話是對(duì)的。
text/event-stream
是服務(wù)器發(fā)送事件(SSE)的官方媒體類型;它將為數(shù)據(jù)位添加data:
前綴,您也可以選擇前綴來(lái)更改該數(shù)據(jù)段對(duì)客戶端的含義。此媒體類型適用于瀏覽器,因?yàn)樗鼈兪褂?code>EventSourceJavaScript API支持該類型。
application/stream+json
用于服務(wù)器到服務(wù)器/http客戶端(任何不是瀏覽器的內(nèi)容)的通信。它不會(huì)為數(shù)據(jù)添加前綴,只會(huì)使用CRLF來(lái)拆分?jǐn)?shù)據(jù)片段。請(qǐng)注意,Spring團(tuán)隊(duì)正在重新考慮該媒體類型,因?yàn)镾PR-16742(請(qǐng)不要猶豫在這里發(fā)表評(píng)論!)。
這篇關(guān)于文本/事件流與應(yīng)用程序/流之間的區(qū)別是什么的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,