【发布时间】:2012-02-10 08:29:11
【问题描述】:
这是关于最新的剑圣宝石 (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 弄错了客户端服务器?你觉得这个实现怎么样?
谢谢。
【问题讨论】:
标签: ruby client-server real-time juggernaut