在我的 Node 应用程序中,我使用
这种方法很好,但是有一个不好的副作用。每当我点击链接离开页面(或重新加载页面)时,消息框就会弹出,因为客户端断开连接。我肯定不想每次访问者单击链接时都显示“服务器不可用”的消息。
我可以在错误消息上设置一个超时,给浏览器足够的时间在错误显示之前导航到其他页面。但是您会承认这是一个低劣的解决方案。此外,还存在两个问题:
1) 在需要实际显示错误消息时,计时器将延迟显示错误消息,使用户无法使用应用程序并且在该间隔期间没有通知
2) 这不适用于页面重新加载(我认为)
总之,肯定有更好的方法。对吧?
注意:这是Firefox中的问题,但Chrome中没有。尚未测试其他浏览器。Firefox还在控制台中显示错误消息,说明websocket连接被中断,我倾向于相信这两个问题有共同的原因。我阅读了很多关于此控制台错误的问题和答案,但没有一个似乎适用于我的情况。
socket.io
实现了 websocket 功能。
为了让客户端知道服务器何时不可用,我正在使用以下代码:
socket.on('disconnect', function(){
//show error to client
});
这种方法很好,但是有一个不好的副作用。每当我点击链接离开页面(或重新加载页面)时,消息框就会弹出,因为客户端断开连接。我肯定不想每次访问者单击链接时都显示“服务器不可用”的消息。
我可以在错误消息上设置一个超时,给浏览器足够的时间在错误显示之前导航到其他页面。但是您会承认这是一个低劣的解决方案。此外,还存在两个问题:
1) 在需要实际显示错误消息时,计时器将延迟显示错误消息,使用户无法使用应用程序并且在该间隔期间没有通知
2) 这不适用于页面重新加载(我认为)
总之,肯定有更好的方法。对吧?
注意:这是Firefox中的问题,但Chrome中没有。尚未测试其他浏览器。Firefox还在控制台中显示错误消息,说明websocket连接被中断,我倾向于相信这两个问题有共同的原因。我阅读了很多关于此控制台错误的问题和答案,但没有一个似乎适用于我的情况。