我们开发了一个基于 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
由于某种原因,SYN ACK 没有发生
编辑 2 我们很确定就是这个。 https://code.google.com/p/android/issues/detail?id=54132
干杯