Gmail浏览器客户端如何检测互联网/服务器断开连接(速度和可扩展性)

3
我们有一个浏览器应用程序(SaaS),希望在网络连接或服务器连接丢失的情况下通知用户。 Gmail非常好地完成了这个功能,一旦我拔掉互联网电缆或禁用网络流量,它立即显示无法连接到服务器,并给我一个重试倒计时。
如何实现类似的功能呢? 我应该让客户端浏览器每秒向应用服务器发出AJAX请求,还是有一个单独的服务器只报告“存活”? 从长远来看,可扩展性将成为一个问题。
2个回答

0

由于GMail每隔几秒钟就会检查新邮件,甚至更频繁地检查聊天信息,因此它可以在没有单独请求的情况下判断连接是否断开。如果您没有使用Ajax进行其他类型的常量更新,则是的,您只需让服务器回复某种“存活”信号即可。请注意,由于Ajax跨域限制,您无法使用单独的服务器。


0

当服务器向客户端报告(通过Comet推送)时,您必须为每个客户端维护一个打开的连接。如果您有大量的客户端,这可能相当昂贵。可扩展性可能是一个问题,就像你所提到的一样。另一个选择是轮询。您可以将其轮询每5-10秒钟一次,而不是每秒进行。

您可以查看的其他内容是Web Sockets(作为HTML 5的一部分开发),但我不确定它是否得到了广泛支持(据我所知,只有Chrome支持它)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接