Javascript 如何在不进行轮询的情况下从Ruby REST/CRUD API不断更新ReactJS客户端? 背景

Javascript 如何在不进行轮询的情况下从Ruby REST/CRUD API不断更新ReactJS客户端? 背景,javascript,ruby,websocket,reactjs,reactjs-flux,Javascript,Ruby,Websocket,Reactjs,Reactjs Flux,我正在构建一个简单的ReactJS应用程序作为概念证明;具有通量体系结构和所有功能 我有一个Ruby和MongoDB数据层API,它是使用Sinatra和Mongoid构建的 使用ReactJS、JSX和Fluxxor静态服务的前端 我当前使用运行以下函数的单击处理程序获取应用程序状态: function(callback){ var the_url = (this.state.isSelected) ? '/disable' : '/enable' ; $.ajax({ url

我正在构建一个简单的ReactJS应用程序作为概念证明;具有通量体系结构和所有功能

我有一个RubyMongoDB数据层API,它是使用SinatraMongoid构建的

使用ReactJSJSXFluxxor静态服务的前端

我当前使用运行以下函数的单击处理程序获取应用程序状态:

function(callback){
  var the_url = (this.state.isSelected) ? '/disable' : '/enable' ;
  $.ajax({
    url: the_url,
    dataType: 'json',
    cache: false,
    success: function(data) {
      callback(data);
    }.bind(this),
    error: function(xhr, status, err) {
      console.error(the_url, status, err.toString());
    }.bind(this)
  });
}
这是一个简单的AJAX调用。我知道我可以通过重构一点并定期运行一段类似于上面的代码来实现某种实时性;基本上轮询

我已经阅读并被告知,做事情的“真正反应方式”是让后端在应用程序状态发生变化时通知前端,并且可靠地实现这一点的方式是使用WebSocket

底线
考虑到我所描述的堆栈,我应该使用什么库来处理应用程序两端的这些套接字,以及最简单的实现是什么样的?您的解决方案不依赖于您使用React,您应该使用与使用任何前端技术相同的实时更新方法。WebSocket的问题主要在于浏览器支持有点不稳定,这是一种非常流行的解决方法


io主要面向Node.js,但应该可以从任何后端使用。是一篇关于将它与Rails结合使用的文章。

您可以通过简单地使用MeteorJS来不断更新您的客户端。jk,我很想看看人们想出了什么解决方案。更改后端是一项繁重的工作,我可能会避免这样做