整条链路是
客户端A --> 服务端 A —> 服务端 B
我负责服务端 A
此时要注意 @Client 中的 processes 的写法
@Post(value = “/v2/xx”, processes = MediaType.TEXT_EVENT_STREAM)
这样写是一直报错的
改成下面的写法才可以
@Post(value = “/v2/xx”, processes = MediaType.APPLICATION_JSON_STREAM)
原因如下
text/event-stream is the official media type for Server Sent Events (SSE); it will prefix data bits with a data: prefix and you can also choose your prefix to change the meaning of that piece of data for the client. This media type is for browsers, as they support that using the EventSource JavaScript API.
application/stream+json is for server to server/http client (anything that’s not a browser) communications. It won’t prefix the data and will just use CRLF to split the pieces of data. Note that the Spring team is reconsidering that media type, because SPR-16742 (don’t hesitate to comment there!).
译文如下
text/event-stream 是服务器发送事件(SSE)的官方媒体类型;它会在数据位前加上 data: 前缀,你也可以选择你的前缀来改变该数据对客户端的意义。这种媒体类型适用于浏览器,因为它们使用 EventSource JavaScript API 支持这种类型。
application/stream+json 用于服务器到服务器/http 客户端(非浏览器的任何设备)的通信。它不会在数据前加前缀,只会使用 CRLF 分割数据块。请注意,由于 SPR-16742 的原因,Spring 团队正在重新考虑这种媒体类型(请随时发表评论!)。