2010-03-13 20 views

Trả lời

14

Hiện tại, bỏ phiếu dài có lẽ là giải pháp tốt nhất. Nhiều trang web tên tuổi lớn có triển khai bỏ phiếu dài, bao gồm Facebook, Google và eBay. Không phải ai cũng đã cài đặt/kích hoạt Flash trong trình duyệt của họ. Trong tương lai Web Sockets có thể thực hiện công việc dễ dàng hơn cho chúng tôi.

Cập nhật: Theo văn bản này, WebSocket API được triển khai trong phiên bản mới nhất của WebKit (Chrome/Safari) và Firefox 4 beta. Ngoài ra còn có một bản chụp công khai của Opera available for download với việc triển khai API. Điều này có nghĩa là việc kiểm tra API có sẵn rộng rãi. Để biết thêm thông tin, hãy xem this answer.

+0

+1 Tôi thích bỏ phiếu dài. Tương lai có thể khác nhưng tôi sẽ không đi với Flash. – Plynx

+0

Tôi đã sử dụng phpfreechat (sử dụng phiếu thăm dò ý kiến ​​dài) và chỉ có 20 người là rất rất chậm !! Tại sao ? Tôi cần tạo ứng dụng thời gian thực cho hàng triệu người cùng một lúc !! – xRobot

+2

@ xRobot: Bạn đã kiểm tra Câu hỏi thường gặp chưa? [http://www.phpfreechat.net/faq] Nó cung cấp một giải pháp cho một vấn đề hiệu năng liên quan đến truy cập đĩa. Khác hơn là bạn yêu cầu một máy chủ được hỗ trợ rất cao để xử lý hàng triệu kết nối cùng một lúc. Các yêu cầu http bình thường là mở-> lấy dữ liệu-> đóng, vì vậy các kết nối đồng thời sẽ ít hơn. Với việc bỏ phiếu dài nó mở -> chờ đợi cho dữ liệu-> gần, rất nhiều đồng thời gần như được đảm bảo. Máy chủ chỉ có thể xử lý một số lượng hạn chế các kết nối đồng thời, và bạn nhận được những gì bạn phải trả cho, nếu bạn bắt trôi của tôi! –

1

Tôi không nghĩ rằng việc bỏ phiếu dài là cách hiệu quả nhất để thực hiện Comet. Dù sao, nó sẽ gửi yêu cầu HTTP mới sau khi phản hồi là có. Nó tốn thêm nhiều yêu cầu HTTP hơn HTTP streaming.

Tuy nhiên, việc bỏ phiếu dài có thể đáng tin cậy hơn và dễ triển khai hơn luồng HTTP. Theo điều này article in Google Code, phát trực tuyến HTTP có thể không hoạt động nếu nội dung bộ đệm proxy trung gian HTTP.

Điều thú vị là GMail không sử dụng bỏ phiếu dài. Với sự trợ giúp của Http sniffer, rõ ràng là nó sử dụng HTTP streaming cho Comet.

+0

Ngoài ra Facebook không sử dụng phiếu thăm dò ý kiến ​​dài? Bạn có biết bất kỳ ví dụ cho http streaming? Thans^_^ – xRobot

+0

Tôi chưa thử nghiệm nó một cách cá nhân, nhưng tôi đã nói rằng trò chuyện Facebook được thực hiện bằng cách bỏ phiếu dài. GMail là Http Streaming. Vì vậy, Outlook Web Access. –

+0

@ xRobot, nếu bạn đang mong chờ làm thế nào để, URL này là một bản tóm tắt tốt: http://cometdaily.com/2007/12/11/the-future-of-comet-part-1-comet-today/ –

4

Tất cả các phương pháp khác nhau đều có ưu điểm và nhược điểm khác nhau, tôi không phải là chuyên gia về sự khác biệt, đó là lý do tại sao tôi sẽ giới thiệu bạn tránh thực hiện lựa chọn, tránh phát triển và điều chỉnh. những thay đổi trong tương lai công nghệ có sẵn (ví dụ như HTML5 cổng web xuất hiện.), sử dụng một thư viện mà tóm tắt phương pháp vận chuyển sử dụng, và chọn phương pháp tốt nhất dựa trên khả năng của khách hàng:

http://socket.io/

thư viện tuyệt vời này giúp tạo ứng dụng thời gian thực đáng kinh ngạc imple! và có nhiều triển khai phía máy chủ khác nhau: Python (Tornado), Java, Google GO, Rack (Ruby), bên cạnh việc triển khai chính thống trong Node.js (JavaScript phía máy chủ)

+0

Yup .. !! Đã sử dụng nó với cả Java và NodeJS. công cụ sáng chói của nó. Đối với java, chúng tôi có thể sử dụng triển khai máy chủ netty. – agpt

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