【问题标题】:Adding an HTTP event (from Rails server) listener to React.js client将 HTTP 事件(来自 Rails 服务器)监听器添加到 React.js 客户端
【发布时间】:2020-09-01 23:17:53
【问题描述】:

我的应用在带有 React 客户端的 Rails 服务器上运行。 我可以使用 axios 从 React 向 Rails 发送请求, 但我不知道如何从 Rails 向 React 发送请求。

当一个用户关注另一个用户时,我想实时显示给另一个用户。

我应该使用socket.io 吗? 我欢迎任何形式的建议。

【问题讨论】:

    标签: ruby-on-rails reactjs websocket real-time


    【解决方案1】:

    在网络上将消息从服​​务器推送到客户端时,您有两个基本选择:

    1. HTTP 轮询:客户端只是每隔一段时间(例如,每 5 秒)询问服务器是否有任何新消息(在您的情况下是新的关注者)。这很简单有效,但涉及到很多乏味的 HTTP 请求。这种情况的一个变体是“长轮询”,在这种情况下,服务器会保持连接打开一段时间,但我不建议这样做。
    2. Websockets:这是一种协议,在该协议中,浏览器通过类似套接字的连接连接到您的后端,从而实现持久的双向通信。在 Rails 上,Action Cable 提供了一种相当简单的方法来连接 websocket 并获得您正在寻找的交互。 Socket.io 是另一个与 Rails 没有连接的选项。另一方面,像 pusher 这样的托管选项可以让您在不需要任何新基础架构的情况下开始使用(为了跟踪谁在多个服务器上进行监听,ActionCable 需要 Redis 或其他分布式数据库)。

    【讨论】:

      猜你喜欢
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      相关资源
      最近更新 更多