Tôi thực sự khuyên bạn nên đầu tư một ít thời gian vào Comet, nhưng tôi không biết triển khai thực sự hoặc thư viện nào bạn có thể sử dụng.
Đối với một loại "bảng điều khiển trung tâm cuộc gọi" của ứng dụng web liên quan đến cập nhật trạng thái cuộc gọi và người gọi cho người gọi trực tiếp, chúng tôi đã phát triển giải pháp nội bộ hoạt động, nhưng cách xa thư viện bạn có thể sử dụng .
Những gì chúng tôi đã làm là triển khai một dịch vụ nhỏ trên máy chủ nói chuyện với hệ thống điện thoại, đợi các sự kiện mới và duy trì ảnh chụp tình huống. Dịch vụ này cung cấp một máy chủ web nhỏ.
Máy khách web của chúng tôi kết nối qua HTTP với máy chủ web này và yêu cầu ảnh cuối cùng (được mã hóa bằng XML), hiển thị ảnh và sau đó quay lại, yêu cầu ảnh mới.Các máy chủ web tại thời điểm này có thể:
- Trả lại ảnh mới, nếu có một
- Khối khách hàng đối với một số giây (30 trong thiết lập của chúng tôi) chờ đợi đối với một số sự kiện để ocurr và thay đổi bức ảnh. Nếu không có sự kiện nào được tạo tại thời điểm đó, nó sẽ trả về cùng một bức ảnh, chỉ để cho phép kết nối ở trạng thái còn sống và không kết thúc thời gian chờ của máy khách.
Bằng cách này, khi khách hàng thăm dò ý kiến, nó sẽ nhận được phản hồi trong khoảng thời gian từ 0 đến 30 giây. Nếu một sự kiện mới đã được tạo, nó sẽ ngay lập tức), nếu không nó sẽ bị chặn cho đến khi sự kiện mới được tạo ra.
Đó là cơ bản bỏ phiếu, nhưng nó phần nào thông minh bỏ phiếu để không quá nóng máy chủ web. Nếu Comet không phải là câu trả lời của bạn, tôi chắc chắn điều này có thể được thực hiện bằng cách sử dụng cùng một ý tưởng nhưng sử dụng AJAX hoặc mã hóa rộng rãi hơn trong JSON để có kết quả tốt hơn. Điều này được thiết kế trước thời đại AJAX, vì vậy có rất nhiều chỗ để cải thiện.
Nếu ai đó có thể cung cấp việc triển khai nhẹ thực tế, tuyệt vời!
Nguồn
2008-08-21 15:49:24
@Rachel - Cập nhật trực tiếp để bạn có thể biết những gì người khác đang làm. Phù hợp cho các trang web như StackOverflow và cho các ứng dụng web để cộng tác như tài liệu của Google. –
Bất cứ ai làm điều này loại trong năm 2016 có lẽ sẽ tìm thấy websockets là một sự lựa chọn tốt hơn cho loại thông tin liên lạc. – Shadow
Tôi không chắc chắn có. Để làm cho nó đơn giản hơn về khái niệm cho ứng dụng, tôi đoán bạn có thể thực hiện một tầng vận chuyển trên đầu các yêu cầu bỏ phiếu, và do đó loại bỏ trách nhiệm bỏ phiếu khỏi logic ứng dụng của bạn. Có lẽ ai đó thậm chí đã thực hiện điều này? Chỉnh sửa: Dường như nó được gọi là reverse Ajax và Comet, nhưng cho đến nay có vẻ như bạn phải tự mình thực hiện. Một thư viện JavaScript cho điều này, bất cứ ai? –