将 HTTP 事件(来自 Rails 服务器)侦听器添加到 React.js 客户端

Adding an HTTP event (from Rails server) listener to React.js client

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

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

socket.io 是我应该使用的东西吗? 我欢迎任何类型的建议。

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

  1. HTTP 轮询:如果有任何新消息(在您的情况下是新的关注者),客户端只是每隔一段时间就询问服务器——比如说,每 5 秒)。这既简单又有效,但涉及大量乏味的 HTTP 请求。它的一个变体是 "long polling",其中服务器保持连接打开一段时间,但我不建议这样做。
  2. Websockets:这是一种协议,浏览器通过类似套接字的连接连接到您的后端,从而实现持久的双向通信。在 Rails、Action Cable provides a fairly easy way to hook up websockets and get the interactions you're looking for. Socket.io is another option which has no connection to Rails. On the other hand, a hosted option like pusher 上,您无需任何新基础设施即可开始使用(为了跟踪谁在跨多个服务器监听,ActionCable 需要 Redis 或其他分布式数据库)。