2016-08-27 54 views
0

我在玩新的ActionCable功能。有沒有一種方法可以使用socket.io或使用React或ReactNative的應用程序與ActionCable服務器進行通信?Consuming Rails 5 ActionCable

也許我很困惑ActionCable的正確使用,它並不打算用作API的替代品,它的目的是作爲支持前端技術用於同一個應用程序。

如果可以的話,我們將不勝感激任何使用ActionCable作爲獨立WS服務器的示例或指南。

回答

1

您可以像使用任何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

+0

是的,我正在閱讀如何實現訂閱消息等,但[ActionCable NPM包出來](https://www.npmjs.com/package/actioncable) –

+0

@SaulMartínez你能夠與actioncable溝通服務器從iOS使用actioncable npm包。如果是的話,你可以分享示例代碼? – Zahid