我在Android应用中使用此操作有线电视库https://github.com/hosopy/actioncable-client-java,我已经能够与顶级频道建立连接。但是,我似乎无法访问较低的频道。这就是我的端点看起来像http:/ endpoint / domains / 1 / subject。
我可以访问“DomainsChannel”,但是有谁知道如何传递域ID 1并访问主题频道?
ws:/endpoint/domains/1/subjects
Channel subjectsChannel = new Channel("DomainsChannel");
答案 0 :(得分:1)
如何将其他参数传递到here所述的ActionCable
频道。
在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中有描述。
我希望有所帮助。