Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

用1.1.9的版本 测试移动4G 返回的是网络不可用 有啥解决办法 #103

Closed
hanxueshi opened this issue Nov 30, 2017 · 35 comments

Comments

@hanxueshi
Copy link

移动 4G 失败
移动 2G 失败
联通4G 可以
联通3G 可以
联通2G 可以
无线可以
电信 4G可以
电信 3G可以

这个是测试的结果 下面的是
let struts = RealReachability.sharedInstance().currentReachabilityStatus()
if struts == .RealStatusNotReachable {
print("网络不给力啊")
return false
}else{
self.analyzeNetworkType(type: struts)
return true
}

返回值就是false

@hanxueshi
Copy link
Author

山东的移动

@dustturtle
Copy link
Owner

一直显示无法上网,还是可以恢复的?

@BestKai
Copy link

BestKai commented Dec 1, 2017

我这边也遇到了,移动4G通过 [RealReachability sharedInstance].currentReachabilityStatus 获取到的是
RealStatusNotReachable

@BestKai
Copy link

BestKai commented Dec 1, 2017

找到问题了,应该在appdelegate里增加 [GLobalRealReachability startNotifier];

@hanxueshi
Copy link
Author

主动调取判断网络的方法 返回值就是RealStatusNotReachable 用git下载的demo也是一样的 用swift写的demo也是一样的结果

@hanxueshi
Copy link
Author

@BestKai 这个加了 这个是开启监控的方法

@BestKai
Copy link

BestKai commented Dec 1, 2017

@hanxueshi 有没有试过换个ping的地址。

@hanxueshi
Copy link
Author

@BestKai 换成百度的了 结果一样

@hatjs880328
Copy link

@dustturtle 能否给解答下呢?

@hatjs880328
Copy link

@dustturtle 这个方法调用多次都是noreach状态

@dustturtle
Copy link
Owner

确定是移动4g问题吗? 可以发个demo到我邮箱,我看一下, openglnewbee@163.com

@xyyDDD
Copy link

xyyDDD commented Dec 8, 2017

我也是,切到Wi-Fi是会正确返回RealStatusViaWiFi而且只会返回一次,但是切到4g会先返回RealStatusViaWWAN,然后又会返回RealStatusNotReachable,总共返回了2次数据,望解答。

@xyyDDD
Copy link

xyyDDD commented Dec 8, 2017

额,我把RealReachability.m中的#define kDefaultHost @"www.apple.com"改成@"www.baidu.com"就解决这个问题了。另外这个一开始不会去发送通知,所以如果一开始就需要知道网络状况,需要手动发送一次通知。

@dustturtle
Copy link
Owner

@xyyDDD 一开始会发通知啊,如果方便的话可以发你的demo到我邮箱 openglnewbee@163.com

@YuanhuYang
Copy link

定位到JMPingFoundation.m文件第656行self.socket = (CFSocketRef) CFAutorelease( CFSocketCreateWithNative(NULL, fd, kCFSocketAcceptCallBack, SocketReadCallback, &context) );
部分站点在移动4G情况下其中的回调SocketReadCallback没有执行,很奇怪,如:
www.baidu.com 可以连通,会执行回调
www.zhihu.com 则不能连通,回调函数不会被执行

@dustturtle
Copy link
Owner

可能是被运营商给搞了?国内运营商套路深啊

@ZhengXueNing
Copy link

最近发现这个库的出发点非常好,但是无奈网络环境的限制,比如作者默认设置www.apple.com为Ping地址,实际上在网络比较差的情况,或者www.apple.com发生了错误的时候也会被误判为无网络。无论是设置www.apple.com或www.baidu.com或www.zhihu.com 都会发生不可控事件(通知函数误判,本来有网的)。或者某些路由器限制了ping 的功能,导致发生不可用。所以最后决定,还是用判断网络的,而不用加了ping功能的。这样就算APP连接上了WiFi但是没有网络,再加一个超时的错误页面就可以了,不会导致由于ping误判,而使请求发不出去。

@dustturtle
Copy link
Owner

@ZhengXueNing master上的最新版本引入了double check机制,可以设置两个ping地址,通过双地址+重试来保证可靠性,欢迎体验,谢谢~

@xmokdjs
Copy link

xmokdjs commented Apr 18, 2018

你好,我现在使用最新的1.1.9版本,然我把WiFi 设置了一个代理(代理地址不存在),但是我检测时还是提示网络可用“Network wifi! Free”

@dustturtle
Copy link
Owner

@xmokdjs 你用的是pod的1.1.9还是master上最新的版本?

@xmokdjs
Copy link

xmokdjs commented Apr 19, 2018

@dustturtle 你好,我是用pod 'RealReachability' 的方式添加到项目里的; 然后我也下载了Demo,在设置了一个不存在的代理地址后,获取到的网络状态也是为可用的网络“Network wifi! Free”,请问这属于正常结果吗?

@dustturtle
Copy link
Owner

你可以把demo发到我邮箱我看看 openglnewbee@163.com, 理论上不应该出现这种情况

@xmokdjs
Copy link

xmokdjs commented Apr 19, 2018

@dustturtle 你好已发送到你的邮箱中,麻烦查收一下

@dustturtle
Copy link
Owner

在当前的版本中这种结果是正常的,代理只代理了http请求,ping包应该会正常发送,从没有代理的网络

@Heyman90
Copy link

Heyman90 commented May 2, 2018

@dustturtle Pod下来的代码包含double check机制RealReachability及PingHelper代码文件更新不下来,好像只能手动替换

@dustturtle
Copy link
Owner

@Heyman90 pod的版本不包含doublecheck的,我还没有正式发布pod的新版本,目前需要自己下载替换

@Heyman90
Copy link

Heyman90 commented May 2, 2018

@dustturtle 好的吧,double check还是有必要的,很多情况下单独的ping并不能准确的反应网络情况,还希望能够早日发布

@dustturtle
Copy link
Owner

@Heyman90 主要是想收集一点用户反馈,自测没发现问题,计划一周以内发布新的pod版本

@Heyman90
Copy link

Heyman90 commented May 3, 2018

@dustturtle 目前我们也在针对这个版本做测试和灰度使用,暂未发现问题,确实也解决很多场景下的网络判断问题。有没有比较推荐的host配置,我个人在用我们自己的服务器域名加上www.baidu.com,效果目前看来还不错。

@dustturtle
Copy link
Owner

如果服务在国内的话就用baidu的和自己的服务器我觉得挺好的,国外的可以用apple的>_<

@dustturtle
Copy link
Owner

@Heyman90 感谢您的反馈!

@dustturtle
Copy link
Owner

@Heyman90 pod version 1.2.0 published

@Heyman90
Copy link

@dustturtle 好的多谢!

@dustturtle
Copy link
Owner

@Heyman90 有开发者反馈了一个状态通知相关的bug,在一个场景下会出现。为了修复这个bug,发布了新的pod版本,请更新,谢谢! 最新的版本号是1.2.2

@Heyman90
Copy link

@dustturtle 好的多谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants