如何在不轮询的情况下从Ruby REST/CUD API不断更新我的ReactJS客户端
How do I continually update my ReactJS client from my Ruby REST/CRUD API without polling?
背景
我正在构建一个简单的ReactJS应用程序作为概念验证;具有Flux架构等等。
我有一个Ruby和MongoDB数据层API,使用Sinatraongoid构建。
使用ReactJS、JSX和Fluxxor静态服务的前端。
我目前使用运行以下函数的点击处理程序获取应用程序状态:
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,您应该使用与使用任何前端技术相同的方式进行实时更新。WebSockets的问题主要是浏览器支持有点不稳定,socket.io是一种非常流行的解决方法。
Socket.io主要面向Node.js,但应该可以在任何后端使用。下面是一篇关于将它与Rails一起使用的文章。
相关文章:
- 如何更改bigquery API中的计费层选项
- Amazon S3 REST API大小不正确
- 客户端服务器REST API captcha实现
- 使用Facebook live API创建实时视频对象时的隐私设置
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- API密钥使用和检查示例
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 谷歌地图JS API+JSON-多个标记没有显示
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 如何在 API 调用后和 if 语句中启用提交按钮
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 搜索api在mac上显示对话框
- Backbone.js restful json API design
- 标记的实时更新,无需加载页面谷歌地图API V3
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- 对API数据使用声明性绑定
- 如何在不轮询的情况下从Ruby REST/CUD API不断更新我的ReactJS客户端