簡體   English   中英

如何在不輪詢的情況下從我的Ruby REST / CRUD API不斷更新我的ReactJS客戶端?

[英]How do I continually update my ReactJS client from my Ruby REST/CRUD API without polling?

背景

我正在構建一個簡單的ReactJS應用程序作為概念證明; Flux架構和所有。

我有一個使用SinatraMongoid構建的RubyMongoDB數據層API。

前端使用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調用。 我知道我可以通過重構一點並且有一段類似於上面定期運行的代碼來實現某種實時; 基本上是投票

我已經閱讀並被告知,做事情的“真正反應方式”是在應用程序狀態發生變化時讓后端通知前端,並且可靠地實現此目的的方法是使用WebSockets

底線

考慮到我所描述的堆棧,我應該使用哪些庫來處理應用程序任何一端的這些套接字,以及最簡單的可能實現是什么樣的?

您的解決方案不依賴於您使用React,您應該使用與使用任何前端技術時相同的方式進行實時更新。 WebSockets的問題主要是瀏覽器支持有點不穩定, socket.io是一種非常流行的解決方法。

Socket.io主要面向Node.js,但應該可以從任何后端工作。 是一篇關於在Rails中使用它的文章。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM