我有一个需要多人游戏支持的 Windows Phone 游戏。多人游戏类似于 Wordament 中的多人游戏:每个人都玩相同的游戏;客户端最初获得游戏,然后每个玩家自己玩游戏,不与其他人进行任何互动,当游戏结束时,收集并显示每个人的结果。不同之处在于:在我的应用程序中,游戏不会在指定时间段后结束,而是在其中一个客户端发出信号时结束。因此,当有人完成游戏(达到目标)时,必须通知所有其他人有人赢了。
我最初的想法是每隔 5 秒汇集一次服务器,看看游戏状态是否已更改。当客户端完成游戏时,它会发送一个包含该信息的请求,并且所有其他客户端在下一次池请求时将获得新状态。IMO,这是最简单、最方便的解决方案,因为我只需要一个字节的数据来告诉我游戏是否结束。
实时(如毫秒精度)并不重要。正如您在上一段中可能已经注意到的,5 秒的延迟是可以接受的。
但是,我问你,专家,双工通道是否更适合这种情况?我找到了像 Pusher 这样提供双向通道的解决方案,但在我看来,这样的解决方案非常复杂且昂贵(我们的预算非常有限)。