2014-02-16 22 views
0

我正在创建一个Rails应用程序,用户可以在其中为主题投票,并且他们的选择将被保存到数据库。在此之后,结果页面将与直播结果一起显示。这意味着当其他人投票时,图表或简单的文本数据将用新投票或定时器更新。Rails投票系统 - 查看实时结果

我相信这是可能的,但我不知道如何开始实施这一点。是否有任何宝石可以轻易地投入使用,还是必须使用实时流式传输或其他类似方法构建某些内容? 谢谢!

回答

1

简单的解决方案是实现一个动作,它将返回json中的当前数据,然后以时间间隔从javascript中进行轮询。

(function poll(){ 
    setTimeout(function(){ 
     $.ajax({ url: "your action url", success: function(data){ 
     // update data here 
     }, dataType: "json"}); 
    }, 30000); 
})(); 

复杂,但更有效的解决方案将是使用WebSockets有一个实时连接,并通过它来的数据。

要与WebSockets实现它,你可以使用简单的东西,像 https://github.com/igrigorik/em-websocket

见项目的GitHub页面上的例子。您需要做的就是每次有新的投票时都会向所有连接的会话发送消息。或者在每秒需要多少票数的情况下限制该流程。

+0

Downvoter谨慎解释? – Anri

+0

不知道为什么downvoted - 但谢谢你的建议!关于如何实现WebSockets以提供数据库投票数据的实时连接的任何建议?谢谢! – dwmcc

+0

@dwmcc如果您没有数百个用户在线,我真的会推荐使用轮询,更容易开始。等一下,我会添加更多关于websocket的信息 – Anri