我有一个接受
问题在于,浏览器会因为 SSE 的设计而重试连接。为了防止这种情况发生,我将重试值设置为更高的数字,例如60000,并在客户端收到结果后关闭连接。
问题在于,如果延迟很高,Chrome会向服务器发送多个请求(在 localhost 上没有问题)。Safari和Firefox没有问题。在Chrome中,网络选项卡上只有一个请求,因此我认为Chrome并不尝试连接服务器,因为请求超时。它也不等待服务器先关闭第一个请求再发送第二个请求。在Chrome中可能导致这个问题的原因是什么?
注意:服务器推送请求的端点和来源不同。对于正常的HTTP请求,Chrome还会发送OPTIONS请求以查找权限,但对于SSE,它不发送OPTIONS预检请求,但我不确定这是否是一个问题,因为SSE是一个GET请求。
text/event-stream
的终端,它基本上发送两种不同类型的事件:stats
和 result
。当服务器发送 result
事件并关闭连接时。问题在于,浏览器会因为 SSE 的设计而重试连接。为了防止这种情况发生,我将重试值设置为更高的数字,例如60000,并在客户端收到结果后关闭连接。
问题在于,如果延迟很高,Chrome会向服务器发送多个请求(在 localhost 上没有问题)。Safari和Firefox没有问题。在Chrome中,网络选项卡上只有一个请求,因此我认为Chrome并不尝试连接服务器,因为请求超时。它也不等待服务器先关闭第一个请求再发送第二个请求。在Chrome中可能导致这个问题的原因是什么?
注意:服务器推送请求的端点和来源不同。对于正常的HTTP请求,Chrome还会发送OPTIONS请求以查找权限,但对于SSE,它不发送OPTIONS预检请求,但我不确定这是否是一个问题,因为SSE是一个GET请求。