这是关于最新的剑圣宝石 (https://github.com/maccman/juggernaut)
我正在考虑建筑,比如说,“点游戏”。这个元游戏非常简单:每个登录用户(订阅频道,就剑圣而言)都是 JS 画布上的一个随机颜色点。用户可以向任何方向移动他的点。而已。
Juggernaut 应该为连接的客户端传输和推送所有数据。
目前我将架构想象为:
1) 客户端将点的坐标和玩家的 id ([1, [10,299]]) 作为 ajax 推送到例如 Rails。
2) Rails 将这些数据推送到 Juggernaut
3) Juggernaut 将坐标推送回所有收听此频道的客户端。
Juggernaut.publish("coordinates_channel", [1, [10,299]])
问题:
1) 当我需要在 js 画布上逐像素移动“点”对象时,我需要发送太多 AJAX 请求。例如,如果我的点每秒移动 20 个像素,我需要每秒发送 20 个请求。不可接受。
2)我应该将 Juggernaut.publish 包装到异步循环中(例如使用 EventMachine)吗?因为,只需想象 1000 个客户(1000 个点,以及具有更新坐标的恒定数据流)......
或者,也许我使用 Juggernaut gem 弄错了客户端服务器?你觉得这个实现怎么样?
谢谢你。