React Native Websocket-Rails ActionCable API。多渠道

时间:2018-11-11 19:52:49

标签: ruby-on-rails reactjs react-native heroku actioncable

我正在创建一个React Native应用,该应用在我的RoR后端api中需要多个actioncable-channels。

我正在使用来自RN的本地Websocket连接到Actioncable,并在服务器端(导轨)中连接actioncable。

它可以很好地处理一个订阅,但是当我尝试在我的应用中打开两个订阅时,只有一个订阅保持打开状态,而另一个订阅则立即关闭。

它实际上在本地主机上工作,但是在heroku上使用“ redistogo”,我只能订阅一个频道。

我在一个视图的两个不同组件中使用了这段代码(使用React导航来处理视图):

ws = new WebSocket(`${ApiConfig.websocket_url}/cable`);
ws.onopen = () => {
  const msg = {
    command: 'subscribe',
    identifier: JSON.stringify({
      channel: 'ChatNotificationsChannel',
      chat_id: this.state.collaboration_id
    })
  };
  ws.send(JSON.stringify(msg));
};

但是当第二个被打开时(在heroku上)失败了。因此,我尝试在父组件中打开一个连接,然后将连接作为道具发送给两个组件,并在组件中使用this.props.ws。这也失败了(在heroku上),所以我不确定如何在heroku上一次订阅多个频道,或者甚至不可能。我找不到很多文档。

0 个答案:

没有答案