Tôi thực sự khuyên bạn nên đầu tư một chút thời gian vào Comet, nhưng tôi không biết thư viện hoặc triển khai thực tế mà bạn có thể sử dụng.
Đối với một loại "bảng điều khiển cuộc gọi" của một ứng dụng web có liên quan đến việc cập nhật trạng thái đại lý và hàng đợi cuộc gọi cho một Callcenter trực tiếp, chúng tôi đã phát triển một 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, chờ đợi các sự kiện mới và duy trì một bức ảnh về tình huống này. Dịch vụ này cung cấp một máy chủ web nhỏ.
Các 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ị nó và sau đó đi lại, yêu cầu ảnh mới. Máy chủ web tại thời điểm này có thể:
- Trả lại ảnh mới, nếu có
- Chặn khách hàng trong vài giây (30 trong thiết lập của chúng tôi) chờ đợi một sự kiện nào đó xuất hiện và thay đổi ả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 tồn tại và không hết thời gian của máy khách.
Bằng cách này, khi khách hàng bỏ phiếu, nó sẽ nhận được phản hồi trong tối đa 0 đến 30 giây. Nếu một sự kiện mới đã được tạo, nó sẽ lấy nó ngay lập tức), nếu không thì nó sẽ chặn cho đến khi sự kiện mới được tạo.
Về cơ bản là bỏ phiếu, nhưng nó bỏ phiếu hơi thông minh để không làm 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ế thời kỳ tiền AJAX, vì vậy có rất nhiều chỗ để cải thiện.
Nếu ai đó có thể cung cấp một thực hiện nhẹ thực tế này, tuyệt vời!