java在GWT中检测离线和在线状态
我正在开发一个GWT应用程序,希望检测用户是否连接了互联网。 我的主要问题是在进行异步调用时检测internet。 我们主要使用Chrome浏览器
我试着用这个:
public void onFailure(Throwable caught) {
if (caught instanceof StatusCodeException
&& ((StatusCodeException) caught).getStatusCode() == 0) {
return "NoInternetConnnectivity";
}
但我发现,除了互联网连接,在许多其他情况下,我们会收到0作为状态码
# 1 楼答案
这段代码取自vaadin TouchKit offline实现,这是询问浏览器是否在线的唯一方法,它使用的是html5。请注意,并非所有浏览器都支持此功能,因此如果属性不存在,则必须返回true
但是,这只在某些情况下有效,我想说的是,它只对移动设备足够可靠
如果你想确保你的服务器是可访问的,我会在我的代码中有一个循环来轮询服务器,我还会捕获所有服务器的ajax响应,以检查是否有服务器故障或网络错误。通常,当你得到一个^ {CD1>}意味着你不能到达你的服务器(网络下,服务器下,CORS错误等),IMO是你必须考虑用一个消息警告用户的例子,如^ {CD2>}/P>
# 2 楼答案
最可靠的方法是依靠HTML5的导航器。在线方法。您可以添加本机方法:
然后在客户端代码中使用此方法