2011-11-22 5 views
5

서버에서 모바일 브라우저로 데이터를 푸시하기 위해 숨겨진 iFrame 혜성 기법을 사용하는 웹 애플리케이션을 개발 중입니다.4KB 메시지를 보내지 않고도 Android 브라우저 용 대체 서버 푸시/혜성 구현이 가능합니까?

모든 것이 모바일 사파리에서 잘 작동하지만 Android는 훨씬 고통 스럽습니다. 계정에서 메시지를 가져 오려면 서버에서 4KB 메시지를 보내야합니다. 이것은 첫 번째 메시지뿐만 아니라 각 메시지에 대한 것입니다.

어떤 사람들은

사람이 구현할 수있게되었다 혜성이 같은 4킬로바이트 문제 (http://code.google.com/p/android/issues/detail?id=13044) XMLHttpRequest의 스트리밍을 사용하지만이 구현 노력 메시지를 4KB로 채우지 않아도 Android 브라우저에서 혜성 기법을 사용할 수 있습니까?

은 2.1,2.2

서버 전송 이벤트가 웹 소켓에 대한 안드로이드 4.0 http://caniuse.com/eventsource

같은 심지어 버전에 http://caniuse.com/websockets

감사

-seb

을 지원하지 않는 것 같습니다 안드로이드에서 테스트

답변

2

자격이 있는지 확실하지 않습니다. es를 직접 문제의 해답으로 삼을 수 있지만 일반적인 권장 사항은 합리적으로 좋은 polyfill에 해당하는 미래 보장 기술을 사용하는 것입니다.

특정 문제에 대해서는 WebSocket이 좋은 대체 옵션 인 WebSocket 서버 (node.js, Kaazing)와 결합하여 최고의 기술이라고 생각합니다. 필자는 Kaazing에 대해 더 잘 알고 있습니다. WebSocket과 호환되지 않는 브라우저에서 WebSocket의 기본 성능과 거의 동일한 성능을 제공합니다. WebSocket 에뮬레이션에 대한 자세한 내용은 this post useful on WebSocket emulation을 참조하십시오.

+0

웹 소켓 **은 대부분의 3g 연결에서 작동하지 않습니다. 악 대차에서 점프 할 때 명심하십시오. –

+0

바로 그 이유가 에뮬레이션이 매우 중요한 이유입니다 ... –

1

이 4KB 버퍼 문제는 오래 전부터 있었으며 데스크톱 브라우저와 Android Internet.app (아직까지는 알지 못했습니다)의 경우에도 마찬가지입니다.

해결 방법은 초기 연결로 4KB 청크를 보내는 것입니다. 그리고 이것은 HTTP StreamingHTTP Long-Polling보다 나은 해결책 중 하나입니다. 스트리밍을 사용하면 연결을 닫은 다음 다시 여는 Long-Polling과 달리 새 데이터를 사용할 수있는 경우 연결을 열어두면됩니다. 이 기술은 불필요한 불필요한 4KB짜리 쓸데없는 데이터 청크가 있지만 그 이상의 모든 데이터는 실제 데이터 (사용 가능)라는 것을 의미합니다. 나는이 버퍼 크기로 엉망 인 삶을 몇 시간 동안 보냈으며 때로는 웹 브라우저간에 일관성이 없다.

그러나 많은 금융 기관에서 사용하는 기업 수준의 응용 프로그램에서 HTTP 스트리밍을 사용하는 회사가 있기 때문에이 작업을 일관되게 잘 수행 할 수 있습니다.

메시지를 4KB로 채우지 않아도 Android 브라우저에서 Comet 기술을 구현할 수있는 사람이 있습니까?

이렇게 될 가능성은 거의 없습니다. WebSockets (@Peter Moskovits가 지적한대로)은 양방향 의사 소통 (현재 시점에서 추진력을 중시 함)이 향후 브라우저 간 교차로 달성 될 수있는 방법입니다.안드로이드의 경우 이것은 사용자가 자신의 장치에 설치된 플래시가 있어야 인터넷 안드로이드가 웹 소켓을 기본적으로 지원하지 않기 때문에 플래시 폴백 기술을 지원해야한다는 것을 의미합니다.

1

Android 및 브라우저의 경우 rgd. WebSocket을 :

  • 파이어 폭스 모바일 지원 (. 포함 최종 RFC6455)

  • 내장 브라우저가 어떠한 WS에 대한 지원이없는이있다. (4 및 포함 최대 안드로이드)

  • 모바일

    크롬 (완전한 RFC6455) .. 오직 안드로이드 4에만 사용할 수 있습니다.

+0

웹 소켓은 Android 4.4 –