消耗 Rails 5 个 ActionCable

Consuming Rails 5 ActionCable

我正在试用新的 ActionCable 功能。有没有一种方法可以使用 say socket.io 或使用 React 或 ReactNative 与 ActionCable 服务器进行通信?

也许我混淆了 ActionCable 的正确使用,它不打算用作比方说 API 的替代品,而是用作同一应用程序的支持前端技术.

如果可能的话,任何使用 ActionCable 作为独立 WS 服务器的好例子或指南将不胜感激。

您可以像通常与任何 WebSocket 库交互一样与 ActionCable 交互。

为此,您将从 Rails 中的频道流式传输:

class ExampleChannel < ApplicationCable::Channel
  def subscribe
    stream_from 'example'
  end
end

然后,您可以通过独立客户端连接到 Rails WebSocket,并使用 ActionCable 协议订阅消息:

function Socket(url) {
  const ws = new WebSocket(url);

  ws.onopen(() => {
    ws.send('{"command":"subscribe","identifier":"{\"channel\":\"ExampleChannel\"}"');
  });
}

参考: http://edgeguides.rubyonrails.org/action_cable_overview.html#channels

https://github.com/NullVoxPopuli/action_cable_client/blob/master/README.md