【问题标题】:Consuming Rails 5 ActionCable使用 Rails 5 ActionCable
【发布时间】:2017-01-04 05:55:10
【问题描述】:

我正在使用新的 ActionCable 功能。有没有办法使用 socket.io 或使用 React 或 ReactNative 从应用程序与 ActionCable 服务器进行通信?

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

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

【问题讨论】:

    标签: ruby-on-rails websocket ruby-on-rails-5 actioncable


    【解决方案1】:

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

    为此,您可以从 Rails 中的 Channel 流式传输:

    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 NPM package came out
    • @SaulMartínez 您是否能够使用 actioncable npm 包从 iOS 与 actioncable 服务器进行通信。如果可以,您可以分享示例代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 2017-03-13
    • 1970-01-01
    相关资源
    最近更新 更多