Cách tốt nhất để giữ cho tất cả các máy khách được đồng bộ hóa với một máy chủ và với nhau là gì?
Hiện tại, chúng tôi có hai cách tiếp cận trong tâm trí:
- Khi một máy khách gửi một cái gì đó đến máy chủ, máy chủ sẽ ngay lập tức gửi tin nhắn đến tất cả các máy khách, nó sẽ phản ứng ngay lập tức.
- Giới thiệu một số thời gian trễ, theo đó máy chủ sẽ gửi tin nhắn cho tất cả khách hàng, với chỉ thị, "hành động theo thời gian này
t
.
Cách tiếp cận thứ hai có vẻ như sẽ giúp các máy khách đồng bộ hóa tốt hơn (vì nó phục vụ cho một mức độ trễ nào đó); nhưng tôi tự hỏi liệu khả năng phản hồi có bị mất ở mức độ quá cao hay không (tức là người dùng nhấp vào 'nhảy' và có một khoảng cách đáng chú ý giữa việc nhấn nút và thực sự nhảy).
Ngoài ra còn có khả năng khách hàng tự tính toán vị trí của mình (và không đợi máy chủ nói "bạn đã nhảy"); nhưng vì độ trễ không thể tránh khỏi, khách hàng sẽ rất không đồng bộ.
Sau đó, có toàn bộ câu hỏi TCP so với UDP; bởi vì chúng tôi muốn nó nhanh, nhưng tôi cũng ghét máy chủ nói rằng bạn đang ở một địa điểm hoàn toàn khác so với bạn nghĩ.
Với tất cả các nhu cầu cạnh tranh này, tất cả đều không chắc chắn về cách chúng ta nên tiếp cận vấn đề này. Phương pháp nào trong số các phương pháp này (hoặc bất kỳ phương pháp nào khác) sẽ là tốt nhất để giữ cho máy khách và máy chủ đồng bộ? Những cái nào thực sự được sử dụng trong ngành công nghiệp?