【问题标题】:how to access lower channel using Actioncable client?如何使用 Actioncable 客户端访问较低通道?
【发布时间】:2017-02-21 07:25:49
【问题描述】:

我在 Android 应用程序中使用这个动作电缆库https://github.com/hosopy/actioncable-client-java,我已经能够与顶级频道建立连接。但是,我似乎无法访问较低的频道。这就是我的端点的外观 http:/endpoint/domains/1/subjects。

我可以访问“DomainsChannel”,但有谁知道我如何通过域 id 1 并访问主题频道?

    ws:/endpoint/domains/1/subjects

    Channel subjectsChannel = new Channel("DomainsChannel");  

【问题讨论】:

    标签: android ruby-on-rails websocket actioncable


    【解决方案1】:

    如何将附加参数传递到ActionCable 通道中描述了here

    在 Rails 项目中,通过以下方式传递通道名称和其他参数就足够了:

    { channel: "DomainsChannel", id: "domain-id-here" }
    

    但是从第三方客户端(例如 Android 和 iOS)您需要做一些小技巧来订阅 ActionCable 的频道。 与 WebSocket 建立连接后,您可以发送包含以下内容的消息以订阅该频道:

    {
      "command":"subscribe",
      "identifier":"{\"channel\":\"DomainsChannel\"}"
    }
    

    注意"identifier"的值是一个字符串,不是JSON它是一个字符串,看起来像JSON。

    所以我想你可以将"identifier" 扩展为在里面包含id

    {
      "command":"subscribe",
      "identifier":"{\"channel\":\"DomainsChannel\",\"id\":\"domain-id-here\"}"
    }
    

    最初我的想法是在我的blog post 中描述的。

    希望对你有帮助。

    【讨论】:

    • 谢谢@ck3g,我会尽快尝试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    相关资源
    最近更新 更多