【发布时间】:2018-08-17 11:12:47
【问题描述】:
我有一个服务器应用程序,它通过无线电在远程设备上执行固件更新。
有时更新可能会一直持续下去(如果无线电网络出现干扰)。在这种情况下,用户可能希望通过刷新或离开页面来中断更新。在这种情况下,我必须:
提醒用户他即将中断更新(不推荐),如果用户确定他的决定(并确认):
向服务器发送一个socketIO事件,通知应该取消更新。
我通过互联网搜索并找到了不同的解决方案。其中最好的是将处理程序分配给全局对象事件onbeforeunload 和onunload。
使用
onbeforeunload我别无选择。只有在用户确认后才能发送 SocketIO 消息,如果用户决定等待更新完成,则什么也不做。我可以将 SocketIO 消息发送到服务器,但是如果用户决定等待呢?伤害已经造成。使用
onunload- 似乎对我不起作用。我看到浏览器正在发送套接字事件,但在服务器处理之前,连接已关闭。
有没有办法保持 SocketIO 连接或延迟浏览器刷新,以便服务器可以处理事件。
我认为这是服务器的问题,因为它在 CPU 上运行,资源非常有限,甚至 CPU 速度也是如此。是ARM A7架构。
【问题讨论】:
标签: javascript node.js socket.io