𝗦𝗵𝗼𝗿𝘁 𝗣𝗼𝗹𝗹𝗶𝗻𝗴, 𝗟𝗼𝗻𝗴 𝗣𝗼𝗹𝗹𝗶𝗻𝗴, 𝘃𝗮̀ 𝗦𝗦𝗘

Bạn cần gửi dữ liệu từ máy chủ (server) đến máy khách (client). Dưới đây là ba cách để thực hiện việc này.

Short Polling

Hãy tưởng tượng một khách hàng trong nhà hàng. Cứ mỗi 5 giây, khách hàng lại hỏi bồi bàn xem thức ăn đã xong chưa.

Khách hàng lặp lại câu hỏi này theo những khoảng thời gian đều đặn.

Các vấn đề:

  • Quá nhiều yêu cầu gửi đến máy chủ của bạn.
  • Các bản cập nhật bị trễ. Nếu thức ăn xong sau khi hỏi 1 giây, khách hàng vẫn phải đợi thêm 4 giây nữa mới hỏi lại lần tiếp theo.
  • Lãng phí tài nguyên mạng.

Long Polling

Khách hàng hỏi bồi bàn: Hãy báo cho tôi khi nào thức ăn xong nhé.

Người bồi bàn đứng đợi tại bàn. Nếu đầu bếp làm xong món ăn, bồi bàn sẽ báo ngay cho khách hàng. Nếu món ăn mất quá nhiều thời gian, bồi bàn sẽ báo cho khách là vẫn chưa xong.

Các vấn đề:

  • Các kết nối được duy trì mở trong thời gian dài.
  • Bạn có thể gặp phải lỗi hết thời gian chờ kết nối (connection timeout).
  • Khó quản lý nhiều khách hàng cùng một lúc.

Server Sent Events (SSE)

Hãy tưởng tượng về giá cổ phiếu trực tuyến. Máy khách chỉ cần mở kết nối một lần. Máy chủ sẽ duy trì kết nối này luôn mở. Bất cứ khi nào giá thay đổi, máy chủ sẽ gửi bản cập nhật đến máy khách.

Các đặc điểm chính:

  • Đây là giao tiếp một chiều.
  • Dữ liệu chỉ chảy từ máy chủ đến máy khách.
  • Máy khách không gửi tin nhắn ngược lại thông qua kết nối này.

Nguồn: https://dev.to/guruharish_b/short-polling-long-polling-and-sse-20o5