如何使用 websocket-rails gem 创建国际象棋自动匹配器?
Posted
技术标签:
【中文标题】如何使用 websocket-rails gem 创建国际象棋自动匹配器?【英文标题】:How to create chess auto-match maker with websocket-rails gem? 【发布时间】:2013-03-12 09:45:55 【问题描述】:我想使用 websockets 制作一个 Rails 国际象棋应用程序,它会自动匹配技能相似的玩家。
使用 Rails,典型设置由多个后端 Rails 进程组成,每个进程在请求之间基本上是无状态的。此外,通常多个后端不会直接相互通信。
如果许多玩家都有到不同后端的 websocket 连接,那么自动匹配器将如何工作?自动匹配器会查看所有想要玩的玩家并适当地匹配他们。这似乎是一种有状态的集中式算法,违背了多个独立的后端 Rails 进程。
鉴于这两个相互冲突的方面,是否有一种在 Rails 中制作自动匹配器的可取的惯用方法?
【问题讨论】:
【参考方案1】:我还没有真正做过这样的事情,但我也许可以为您指出正确的方向:
你应该看看socket.io、redis 和socket.io-cluster
我找到了slideshow,也许你可以和作者联系。
【讨论】:
该幻灯片似乎侧重于 websocket 之类的通信,而不是如何在 Rails 中实现集中的媒人。以上是关于如何使用 websocket-rails gem 创建国际象棋自动匹配器?的主要内容,如果未能解决你的问题,请参考以下文章
用于 websocket-rails gem 的 Ruby websocket 客户端
Rails 4 + Websocket-rails + Passenger + Nginx + 负载均衡器
从 rails runner 内部触发/订阅 websocket-rails 事件