Tôi hiện đang lên kế hoạch thực hiện một dự án trò chơi bài nơi khách hàng sẽ liên lạc với máy chủ theo cách đồng bộ và theo lượt bằng cách sử dụng tin nhắn được gửi qua ổ cắm. Vấn đề tôi có là làm thế nào để xử lý tình huống sau:
(Khách hàng thực hiện lần lượt và gửi hành động của mình đến máy chủ)
Khách hàng gửi một thông báo cho máy chủ biết lần lượt di chuyển (ví dụ: chơi thẻ 5 từ tay cần đặt lên bàn)
Máy chủ nhận tin nhắn và cập nhật trạng thái trò chơi (máy chủ sẽ giữ tất cả trạng thái trò chơi).
Máy chủ lặp qua danh sách các máy khách được kết nối và gửi một thông báo để thông báo về sự thay đổi trạng thái của chúng
Tất cả khách hàng làm mới để hiển thị trạng thái
Tất cả đều dựa trên việc sử dụng TCP và nhìn vào nó bây giờ có vẻ hơi giống mẫu của Người quan sát. Lý do có vẻ như đây là một vấn đề đối với tôi là tin nhắn này dường như không giống như những người khác vì tôi muốn gửi nó cho tất cả các khách hàng và dường như không gửi tin nhắn tương tự rất hiệu quả theo cách đó
Tôi đã suy nghĩ về việc sử dụng đa phương tiện với UDP vì sau đó tôi có thể gửi tin nhắn cho tất cả các khách hàng, tuy nhiên điều này có nghĩa là các khách hàng trên lý thuyết có thể nhắn tin cho nhau không? Tất nhiên cũng có khía cạnh đồng bộ, mặc dù điều này có thể được đặt lên trên UDP tôi đoán.
Về cơ bản, tôi muốn biết điều gì sẽ là thực tiễn tốt vì dự án này thực sự là về học tập, và mặc dù nó sẽ không đủ lớn để gặp phải các vấn đề về hiệu suất từ điều này, dù sao tôi cũng muốn xem xét chúng.
Tuy nhiên, xin lưu ý rằng tôi không quan tâm đến việc sử dụng phần mềm trung gian hướng thư như một giải pháp (Tôi có kinh nghiệm sử dụng MOM và tôi quan tâm đến việc xem xét các tùy chọn khác trừ MOM nếu socket TCP là một ý tưởng tồi!).