继续尝试连接Websocket,直到成功

时间:2019-12-08 01:15:42

标签: websocket

当我尝试使用const socket = new W3WebSocket()打开websocket时,服务该websocket的后端可能未准备好。当后端尚未准备就绪时,我会收到一个错误,并调用onclose处理程序,然后我们显然停止尝试连接到套接字。服务器可用时,它可能正在发送消息,但是我的客户端无法知道。

如何解决此问题?有没有办法让Websocket等待一定时间再考虑连接失败?我在WS API中没有看到类似的信息。 (我正在使用websocket软件包)。

(我曾经想到onerroronclose方法可以尝试再次打开套接字–在连接时设置一个布尔标志,因此它不会尝试连接下次关闭时-但这似乎是不明智的解决方法)

-

这是简单的通用问题。我的具体情况如下:

在我的系统中,后端每隔两秒钟通过Websocket发送一条状态消息。 当React前端启动时,它会向后端发出HTTP请求。后端在HTTP响应的正文中返回其状态。

为确保后端已准备好进行此HTTP响应,我正在对其进行编程以等待来自后端的状态消息。如果前端在后端之前启动,则我们不想发送HTTP请求。

但是问题是:当前端启动时,它会连接到Websocket,但是如果尚未启动后端(我们正在尝试解决的确切问题),则前端在尝试执行以下操作时会引发错误:连接到Websocket,套接字的onclose函数运行,并且我们永远不会知道后端何时准备就绪。

0 个答案:

没有答案