Ba cách đẩy dữ liệu gần thời gian thực từ server về client:
- (Long) polling: client hỏi lặp lại. Short polling gọi định kỳ (lãng phí); long polling giữ request mở tới khi có dữ liệu rồi mở lại. Đơn giản, chạy mọi nơi, nhưng tốn kết nối và có độ trễ.
- SSE (Server-Sent Events): kênh một chiều server→client trên một kết nối HTTP dài, tự reconnect, dạng text. Nhẹ, hợp feed/thông báo/streaming một chiều (ví dụ token của LLM), nhưng không gửi ngược lên bằng cùng kênh.
- WebSocket: kênh song công (hai chiều), độ trễ thấp, hợp chat, game, collaborative editing. Mạnh nhất nhưng là giao thức riêng (không phải HTTP request/response), khó cache/scale hơn, cần quản lý kết nối bền.
Chọn: một chiều nhẹ → SSE; hai chiều tương tác cao → WebSocket; môi trường hạn chế → long polling làm fallback.