问题描述
我目前正在使用 Ruby on Rails(Ruby 版本 2.7.2,Rails 版本 6.1.3)为一个类创建二十一点游戏。我和我的队友希望尽快将游戏从当前的单人游戏模式(1 人对自动发牌人)转变为多人游戏。在这门课之前,我没有使用过 Ruby on Rails,并且在支持多人游戏方面的知识非常有限。我在几年前发现了一些关于堆栈溢出的帖子,其中通常推荐使用 WebSockets 作为解决方案,特别推荐使用 Action Cable。
鉴于我在这个主题上找到的大部分信息都比较旧并且可能已经过时,我希望知道 WebSockets 是否仍然是多人功能的最佳解决方案,如果是,则是 Action Cable适合初学者的最佳选择?
解决方法
我们通常不会接受征求一般意见的问题 - 因为您会收到很多相互矛盾的意见!
我鼓励您看看 Hotwire,它最近由 Basecamp 的人发布,并且与 Rails 配合得非常好。
本质上,您需要能够更新各种对象状态的功能,而无需重新加载/刷新整个页面,例如如果玩家 A 加倍下注,所有其他玩家都应该在不重新加载的情况下看到反映在他们屏幕上的内容。 Hotwire 和相关的 Stimulus 和 Turbo 库实现了这一点。