2011-11-22 26 views
5

Tôi đang phát triển một ứng dụng web sử dụng kỹ thuật Comet Hidden iFrame để đẩy dữ liệu từ máy chủ đến trình duyệt di động.Triển khai Đẩy/Sao lưu Máy chủ thay thế cho trình duyệt Android mà không cần gửi tin nhắn 4KB?

Tất cả mọi thứ hoạt động tốt trên Mobile Safari nhưng Android là rất nhiều đau đớn hơn. Có vẻ như yêu cầu 4 KB tin nhắn được gửi từ máy chủ để tin nhắn được đưa vào tài khoản. Điều này là dành cho mỗi thư không chỉ là thư đầu tiên.

Một số người cố gắng thực hiện sao chổi sử dụng XMLHttpRequest trực tuyến nhưng có những vấn đề 4KB cùng (http://code.google.com/p/android/issues/detail?id=13044)

Có ai quản lý để thực hiện Kỹ thuật sao chổi trên trình duyệt Android mà không cần phải gửi thư đến 4KB?

Tested trên Android 2.1,2.2

máy chủ gửi sự kiện dường như không được hỗ trợ ngay cả trên phiên bản Android 4,0 http://caniuse.com/eventsource

Tương tự cho WebSocket http://caniuse.com/websockets

nhờ

-seb

Trả lời

2

Không chắc chắn nếu nó đủ điều kiện es như một câu trả lời cho vấn đề trước mắt của bạn, nhưng khuyến nghị chung là sử dụng một kỹ thuật tương lai-proof mà rơi trở lại một hợp lý tốt polyfill.

Đối với vấn đề cụ thể của bạn, tôi tin rằng WebSockets là công nghệ tốt nhất, kết hợp với một máy chủ WebSocket (Node.js, Kaazing), với các tùy chọn dự phòng tốt. Tôi quen thuộc hơn với Kaazing: nó cung cấp hầu như hiệu suất tương tự trên các trình duyệt không tương thích với WebSocket như hiệu năng WebSocket gốc. Để biết thêm về mô phỏng WebSocket, bạn có thể tìm thấy this post useful on WebSocket emulation.

+0

Websockets ** don't ** work over most 3g connections. Hãy ghi nhớ điều đó khi nhảy vào bandwagon. –

+0

Đó chính là lý do tại sao mô phỏng là rất quan trọng ... –

1

4KB này vấn đề đệm đã được khoảng một thời gian dài và vẫn là trường hợp trên các trình duyệt máy tính để bàn cũng như Android Internet.app (mà tôi không biết về).

Giải pháp là để gửi một đoạn 4KB với kết nối ban đầu. Và đây là một kịch bản trong đó HTTP Streaming là giải pháp tốt hơn so với HTTP Long-Polling. Với tính năng truyền trực tuyến, bạn giữ kết nối mở khi có dữ liệu mới, không giống như Cuộc thăm dò dài nơi bạn đóng và sau đó mở lại kết nối. Kỹ thuật này có nghĩa rằng có một đoạn 4KB không may đầu tiên của dữ liệu vô ích nhưng tất cả dữ liệu ngoài đó là dữ liệu thực tế (có thể sử dụng). Tôi đã bỏ ra hàng giờ trong đời để làm rối tung kích thước bộ đệm này và đôi khi nó không phù hợp giữa các trình duyệt web.

Nhưng, có các công ty như Caplin Systems sử dụng HTTP Streaming trong các ứng dụng cấp doanh nghiệp của họ, được nhiều tổ chức tài chính sử dụng, vì vậy có thể làm việc này một cách nhất quán.

Có ai đã quản lý để triển khai các kỹ thuật Comet trên trình duyệt Android mà không cần phải gửi thư đến 4KB không?

Rất có khả năng điều này sẽ không bao giờ xảy ra. Và WebSockets (như được chỉ ra bởi @Peter Moskovits) là cách mà giao tiếp hai hướng này (với sự nhấn mạnh vào việc đẩy vào lúc này) sẽ đạt được trình duyệt chéo trong tương lai.Đối với Android, điều này có nghĩa là người dùng cũng sẽ cần Flash được cài đặt trên thiết bị của họ cho ứng dụng Internet để hỗ trợ kỹ thuật dự phòng Flash sẽ được yêu cầu vì Android, hiện tại, không hỗ trợ WebSockets.

1

Trên Android và với trình duyệt và rgd. WebSockets:

  • Firefox Mobile đã hỗ trợ (. Bao gồm RFC6455 thức)

  • trình duyệt được xây dựng trong không có người hỗ trợ cho WS nào (. Lên đến và bao gồm Android 4)

  • Chrome for Mobile (đầy đủ RFC6455) .. chỉ khả dụng cho Android 4

+0

Websockets được supperted như của Android 4.4 –

Các vấn đề liên quan