1

我们开发了一个基于 HTML 5 的解决方案,以取代旧的基于 Flash 的解决方案,用于交付基于视频的内容。升级的目的是摆脱闪存的束缚,让服务在移动设备上运行。

在 PC/Mac 和 iOS 上,一切都在内部和外部运行良好。然而,Android 在连接到公司 WiFi 时完全失败,我们无法弄清楚原因。代理设置正确且互联网正常。

当尝试查看视频并通过远程调试观看时,请求只是说挂起,但从未真正完成。

网络

  • 网络完全被锁定,没有直接连接到互联网,所有请求都通过 http 代理服务器
  • 由于这个 TCP/UDP 5228-5230 被完全阻止,所以网络指示器是灰色的,但是浏览互联网确实有效。
  • 我们有许多可用的 http 代理(我不确定正在使用的软件)但是它不适用于任何
  • 代理规则非常宽松,facebook/youtube/vimeo 都是畅通无阻的。
  • 视频托管在 Akamai 上
  • 可用的视频格式 webm 和 mp4

故障条件

  • 在 Android 版 Chrome 中直接在 Akamai 上访问视频。在公司 wifi上失败,在 3g/open wifi 上工作
  • 在 Android 上的 Chrome 中直接在内部 IIS 7.5 服务器上访问视频。在公司 wifi(仍然使用 http 代理)上工作
  • 在 Android 版 Chrome 中直接在 Akamai 上访问视频。在开放的 wifi 上,但端口 5228-5230 UDP/TCP 被阻止工作
  • 安卓中的 YouTube 应用。在公司 wifi上失败,在 3g/open wifi 上工作。这在 iOS 上运行良好

请记住,企业 WiFi 不会以任何方式阻止这些服务,是否有人对导致问题的原因有任何可能的想法?有什么想法可以帮助调试问题吗?

我有一位同事目前正在为 android 尝试鲨鱼,如果他发现任何有用的东西,我会更新答案。

编辑 1 个失败请求的 Wireshark 失败请求的 Wireshark

工作请求的 Wireshark 工作请求的 Wireshark

由于某种原因,SYN ACK 没有发生

编辑 2 我们很确定就是这个。 https://code.google.com/p/android/issues/detail?id=54132

干杯

4

2 回答 2

0

您的应用程序是否使用任何 Google Play 服务库。如果是这样,这可能是原因。

您提到网络指示灯是灰色的,但您可以浏览互联网。这意味着虽然您有互联网连接,但该设备无法与 Google 服务器通信。如果您的应用程序必须使用 google play 服务库,则很可能是联系 google 服务器以访问 API,这可能是您的应用程序失败的原因。

我会认为日志猫中会有一些东西表明访问谷歌服务失败。尽管我有时会看到这种情况发生,尽管它无法连接但永远不会返回超时响应,因此它会锁定,所以也许这就是正在发生的事情。

如果可能的话,启用 TCP 和 UDP 端口 5228 可能是值得的,因为这是访问 google 服务器所必需的。

于 2013-07-15T12:08:19.760 回答
0

经过一些研究,我们很确定这是问题所在。希望它会很快得到解决。

https://code.google.com/p/android/issues/detail?id=54132

于 2013-07-24T16:33:22.723 回答