React Native Websocket - Rails ActionCable API. Несколько каналов - PullRequest
0 голосов
/ 11 ноября 2018

Я создаю приложение React Native, для которого требуются несколько actioncable-каналов в моем интерфейсе RoR-backend.

Я использую нативный Websocket из RN для подключения к Actioncable и actioncable на стороне сервера (rails).

Хорошо работает с одной подпиской, но когда я пытаюсь открыть две подписки в моем приложении, остается открытой только одна подписка, а другая сразу закрывается.

На самом деле он работал в localhost, но с 'редистого' на heroku я мог подписаться только на один канал.

У меня был этот код в двух разных компонентах в представлении (используя навигацию реагирования для обработки представлений):

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));
};

Но это не удалось (на героку), когда был открыт второй. Поэтому я попытался открыть одно соединение в родительском компоненте и отправить соединение в качестве опоры обоим компонентам, используя вместо этого this.props.ws в компонентах. Это также на провал (на героку), поэтому я не уверен, как я могу подписаться на несколько каналов одновременно на героку, или если это вообще возможно. Я не могу найти много документации по этому вопросу.

...