我有一些像这样的 node.js 客户端代码:
socket.emit('clickAccept', { myrecid: recid });
服务器端 node.js 代码运行良好,一切正常。
如果我关闭服务器以模拟服务器端中断,然后单击在客户端触发此 socket.emit 的按钮,会发生这种情况:
我想要发生的是那些socket.emit
调用在短暂的超时后死亡并且在服务器恢复时不发送,这会导致各种混乱,因为如果他们单击 3 次,则什么也没有发生,然后当/如果连接或服务器出现时备份他们一次得到 3 个反应。
此外,如果他们点击并且由于服务器关闭而超时,我想向客户端用户显示一个错误,让他们知道基本上点击不起作用并重试。
我知道如何在套接字出现故障时采取行动并显示错误,但如果他们当时不尝试单击某些内容,我不想这样做。向用户触发错误是没有意义的,因为如果他们当时不需要做任何事情,套接字就会短暂地关闭。
所以,要清楚,如果他们点击按钮并且客户端和服务器之间的套接字关闭,我只想显示一个错误。并且...如果他们收到错误消息,我想终止该发出的消息,而不是将其全部保存并在几秒钟后服务器恢复时触发它以及所有其他点击。
提前致谢,我希望这至少是相当清楚的。
感谢其他答案和帮助。我最终以一种超级简单的方式解决了这个问题。见下文:
if (socket.connected){ // Do your thing here } else { // Throw error here that tells the user they're internet is likely down }
希望这可以帮助那里的人,这是我们代码的巨大改进,以确保用户在网络/互联网短暂中断时获得正确的反馈。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句