gpt4 book ai didi

javascript - 如何确定 SSE 连接已关闭?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:52 29 4
gpt4 key购买 nike

我们有一个在 JavaScript 中打开的 SSE(服务器发送事件)连接,它有时会因为服务器重启或其他原因而关闭。在那种情况下,最好重新建立连接。怎么做?有没有办法在客户端发现连接已关闭?

此处:https://developer.mozilla.org/en-US/docs/Web/API/EventSource我只找到了关闭连接的方法,但没有回调或判断连接是否还活着的测试方法。

感谢您的帮助。

最佳答案

如果连接关闭(以浏览器可以实现的方式),它将自动连接。而且它往往会很快完成此操作(Chrome 中默认为 3 秒,Firefox 中为 5 秒)。 readyState 在执行此操作时将为 CONNECTING (0)。如果首先出现连接问题(例如,由于 CORS 问题),它只会关闭 (2)。一旦关闭,它就不会重试。

我更喜欢在上面添加一个保持事件机制,因为浏览器不能总是检测到死套接字(更不用说被锁定的远程服务器进程等)。有关详细代码,请参阅使用 HTML5 SSE 的数据推送应用程序的第 5 章,但基本上它涉及让服务器每 15 秒发送一条消息,然后运行 ​​20 秒的 JavaScript 计时器,但每次收到消息时都会重置。如果计时器过期,我们将关闭连接并重新连接。

关于javascript - 如何确定 SSE 连接已关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27824948/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com