2009-05-21 35 views
6

Tôi đã tự hỏi liệu có một lợi thế thực sự khi sử dụng COMET/công nghệ đẩy trong việc bỏ phiếu đơn giản hơn với các yêu cầu dài mà máy chủ sẽ đợi một thời gian tối đa nhất định cho các sự kiện mới xảy ra trước khi nói với khách hàng rằng không có gì xảy ra. Cả hai công nghệ đều có độ trễ của khách hàng tương tự và trong khi thông thường là yêu cầu dài hơn vì chúng cần thiết lập một kết nối mới, cũng có thực tế là có HTTP giữ lại - vì vậy cuối cùng, cả hai dường như tạo ra lưu lượng/tải rất giống nhau.Ưu điểm của COMET khi bỏ phiếu yêu cầu dài?

Vì vậy, có một số lợi thế rõ ràng khi sử dụng COMET?

+0

Không xa như tôi có thể thấy ... (/ tôi tự hỏi nếu có một điều như một sao chổi-fanboy) – annakata

+0

@annakata Mọi người vẫn còn/tôi những ngày này? – Pacerier

Trả lời

12

Bỏ phiếu AFAIK với yêu cầu dài khá nhiều sao chổi IS. Bỏ phiếu với yêu cầu ngắn là không.

+4

Bingo. Sự khác biệt là giữ mở các yêu cầu trong một thời gian dài, đó là khó khăn để làm hiệu quả trên máy chủ. Nếu bạn có điều đó, về cơ bản bạn có sao chổi. – jvenema

0

Một số ưu điểm tôi có thể nghĩ:

  • Làm cho lập trình client dễ dàng hơn.
  • Độ trễ tối thiểu giữa sự kiện thực và thông báo đến khách hàng. Việc bỏ phiếu này có thời gian trung bình là [POLL TIME]/2 và trường hợp xấu nhất là [POLL TIME].
  • Có thể giảm thiểu tài nguyên cần thiết trong máy chủ. Xem ví dụ này article. Các công nghệ máy chủ mới cần được sử dụng để điều này xảy ra.
+1

Độ trễ bạn mô tả là những gì bạn có với "yêu cầu ngắn" với yêu cầu dài, máy chủ sẽ trì hoãn câu trả lời cho đến khi có sự kiện hoặc thời gian chờ tối đa (để ngăn thời gian chờ kết nối). Điều này có nghĩa là bạn phải thực hiện như một yêu cầu mỗi phút hoặc lâu hơn nhưng vẫn gần như không có độ trễ vì sự kiện trên máy chủ kích hoạt phản hồi tiếp theo. Khách hàng không quá phức tạp .. khách hàng yêu cầu một URI sự kiện duy nhất và yêu cầu lại ngay khi nhận được câu trả lời. – fforw

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