Java 使用服务器发送事件,客户机总是试图重新连接到服务器,即使客户机是否返回消息?

Java 使用服务器发送事件,客户机总是试图重新连接到服务器,即使客户机是否返回消息?,java,javascript,server-sent-events,Java,Javascript,Server Sent Events,据我所知,在SSE(服务器发送事件)技术中,只要连接关闭,客户端就会尝试自动重新连接到服务器。我已经通过谷歌,实际上我对SSE的工作原理感到困惑 让我知道它在哪个流上工作,如下所示 client: send request "do you got any updates" server: no updates client: send request "do you got any updates" server: no udates .... ...... client: send reque

据我所知,在SSE(服务器发送事件)技术中,只要连接关闭,客户端就会尝试自动重新连接到服务器。我已经通过谷歌,实际上我对SSE的工作原理感到困惑

让我知道它在哪个流上工作,如下所示

client: send request "do you got any updates"
server: no updates
client: send request "do you got any updates"
server: no udates
....
......
client: send request "do you got any updates"
server: oh yes, now you got updates


谢谢你注意到我

这更像是“这里有更新”。。。“这是另一个更新”。。。“这是另一个……考虑阅读现有的文档来了解SSE。也就是说,它基本上是第二种选择(如果连接关闭,则使用透明重新连接,但不应在每个事件之间关闭)。您好@Touffy,看起来你们都是指第二种选择,但在我的情况下,第一种选择是有效的,我已经通过您提供的链接。如你所说,它清楚地说明如下,它是正确的,但是。如果连接关闭,客户端将重新连接;可以告诉客户端停止使用HTTP 204无内容响应代码重新连接。客户端如何使用HTTP 204无内容响应代码告知停止重新连接。谢谢。但在我的例子中,这是第一种选择,我使用javascript控制台来查看readyState。它反复显示0(正在连接…)和1(已建立连接),然后显示0-1、0-1。。。因此,我的que是它在没有连接关闭的情况下重新连接的原因(readyState!=2)。因此,我如何通过反复向服务器发送请求来解决这个问题。这可能是由许多原因造成的,但在客户端没有。事件流服务器以及它与客户端之间的任何代理都必须配置为允许长期连接,并在数据可用时传递数据。一些移动网络也可能试图关闭非活动连接。您能否解释一下您的服务器设置,甚至提供一个到事件流的链接?
client: send request "do you got any updates"
server: wait a while I will let you know when I will got udates
......
.......
server: Hi you got updates, check it.
.....
.......
server: Hi again, you got updates.