消耗 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
我正在试用新的 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