0
我正在创建一个Rails应用程序,用户可以在其中为主题投票,并且他们的选择将被保存到数据库。在此之后,结果页面将与直播结果一起显示。这意味着当其他人投票时,图表或简单的文本数据将用新投票或定时器更新。Rails投票系统 - 查看实时结果
我相信这是可能的,但我不知道如何开始实施这一点。是否有任何宝石可以轻易地投入使用,还是必须使用实时流式传输或其他类似方法构建某些内容? 谢谢!
我正在创建一个Rails应用程序,用户可以在其中为主题投票,并且他们的选择将被保存到数据库。在此之后,结果页面将与直播结果一起显示。这意味着当其他人投票时,图表或简单的文本数据将用新投票或定时器更新。Rails投票系统 - 查看实时结果
我相信这是可能的,但我不知道如何开始实施这一点。是否有任何宝石可以轻易地投入使用,还是必须使用实时流式传输或其他类似方法构建某些内容? 谢谢!
简单的解决方案是实现一个动作,它将返回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页面上的例子。您需要做的就是每次有新的投票时都会向所有连接的会话发送消息。或者在每秒需要多少票数的情况下限制该流程。
Downvoter谨慎解释? – Anri
不知道为什么downvoted - 但谢谢你的建议!关于如何实现WebSockets以提供数据库投票数据的实时连接的任何建议?谢谢! – dwmcc
@dwmcc如果您没有数百个用户在线,我真的会推荐使用轮询,更容易开始。等一下,我会添加更多关于websocket的信息 – Anri