我希望创建一个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页面上的示例。您需要做的就是在每次有新的投票时向所有连接的会话发送消息。或者限制该过程,以防每秒必须获得大量投票。