𝗣𝗼𝗹𝗹𝗶𝗻𝗴 𝘁𝗿𝗼𝗻𝗴 𝗧𝗵𝗶𝗲̂́𝘁 𝗸𝗲̂́ 𝗛𝗲̣̂ 𝘁𝗵𝗼̂́𝗻𝗴

Polling cho phép client nhận các bản cập nhật từ server. Bạn có thể so sánh việc này với một người phục vụ đang kiểm tra món ăn của bạn.

Có ba phương pháp chính.

Short Polling

Client yêu cầu cập nhật theo các khoảng thời gian cố định. Nếu dữ liệu chưa sẵn sàng, server sẽ gửi một phản hồi trống. Client lặp lại chu kỳ này cho đến khi dữ liệu được gửi đến. Phương pháp này tạo ra nhiều yêu cầu không cần thiết.

Long Polling

Client gửi một yêu cầu và server sẽ giữ yêu cầu đó ở trạng thái chờ. Server chỉ phản hồi khi dữ liệu đã sẵn sàng. Ngay khi client nhận được phản hồi, nó sẽ gửi một yêu cầu mới ngay lập tức. Điều này tạo ra cảm giác gần như thời gian thực. Nó giúp giảm thiểu các phản hồi trống so với short polling.

Event Stream

Client và server mở một kết nối duy nhất. Kết nối này duy trì mở cho đến khi một trong hai bên đóng nó lại. Server sẽ đẩy dữ liệu đến client bất cứ khi nào có sự kiện xảy ra. Đây là giao tiếp thời gian thực thực thụ.

Nhược điểm là việc sử dụng tài nguyên. Kết nối chiếm dụng một cổng (port) cụ thể. Cổng đó sẽ không khả dụng cho các tác vụ khác cho đến khi kết nối kết thúc.

Lựa chọn của bạn phụ thuộc vào nhu cầu hệ thống và những đánh đổi mà bạn chấp nhận.

Nguồn: https://dev.to/cibani_joe/polling-in-system-design-ph6