我想做一个使用websockets的Rails国际象棋应用程序,它会自动匹配类似技能的玩家。
使用Rails,典型的设置由多个后端Rails进程组成,每个进程在请求之间基本上是无状态的。而且,通常多个后端不会直接相互通信。
如果许多玩家都有websocket连接到不同的后端,那么自动匹配生成器将如何工作?自动匹配生成器会查看所有想要玩游戏的玩家,并为他们进行适当的匹配。这似乎是一个有状态的集中式算法,违背了多个独立后端Rails进程的原则。
考虑到这两个相互冲突的方面,是否有一种明智的习惯方式在Rails中创建自动匹配生成器?
我还没有真正做过这样的事情,但是我可以为你指出正确的方向:
你应该看看socket。Io、redis和socket.io-cluster
我找到了一个幻灯片,也许你可以和作者取得联系。