Вопрос

We've developed a HTML 5 based solution to replace an old flash based solution for the delivery of video based content. The intention of the upgrade was to escape the grip of flash and allow the service to work on mobile devices.

Everything works great internally and externally on PC's/Mac and iOS. Android however totally fails when connected to the corporate WiFi and we cannot figure out why. The proxy settings are correct and the internet is working.

When trying to view the video and watching with remote debugging the requests just says pending but never actually completes.

Network

  • The network is totally locked down and there is no direct connection to the internet, all requests go via a http proxy server
  • Due to this TCP/UDP 5228-5230 is completely blocked so the network indicators are grey however browsing the internet does work.
  • We have a number of http proxies available (I'm not sure of the software in use) however it doesn't work on any
  • The proxy rules are pretty relaxed, facebook/youtube/vimeo are all unblocked.
  • Video's are hosted on Akamai
  • Video formats available webm and mp4

Failure conditions

  • Accessing the video directly on Akamai in Chrome on Android. On corporate wifi fail, on 3g/open wifi works
  • Accessing the video directly on internal IIS 7.5 server in Chrome on Android. On corporate wifi (which still uses the http proxy) works
  • Accessing the video directly on Akamai in Chrome on Android. On open wifi but with ports 5228-5230 UDP/TCP blocked works
  • YouTube app in android. On corporate wifi fail, on 3g/open wifi works. This works fine on iOS

Bearing in mind, these services are not blocked in any way by the corporate WiFi, does anyone have any possible ideas as to what would be causing the problem? Any idea's to help debugging the problem?

I have a colleague currently trying shark for android and I'll update the answer if he finds anything useful.

Edit 1 Wireshark of a failed request Wireshark of a failed request

Wireshark of a working request Wireshark of a working request

For some reason the SYN ACK is not occurring

Edit 2 We're pretty sure it's this. https://code.google.com/p/android/issues/detail?id=54132

Cheers

Это было полезно?

Решение 2

After some research we're pretty sure this is the problem. Hopefully it'll be solved soon.

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

Другие советы

Does your app make use of any the Google Play Services Library. If so that might be the reason.

You mentioned that the network indicators are grey but you can browse the internet. That means that although you have an internet connection, the device is unable to communicate with Google Servers. If your app has to make use of the google play services library, it is most likely contacting google servers to access APIs which may be why your app is failing.

I would have thought though that there would be something in the log cat to indicate a failure accessing the google services. Although I have sometimes seen this happen that although it is unable to connect a timeout response is never returned so it locks so maybe this is what is happing.

If possible it may be worth enabling TCP and UDP port 5228 as this is required to access google servers.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top