Я создаю приложение 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
в компонентах. Это также на провал (на героку), поэтому я не уверен, как я могу подписаться на несколько каналов одновременно на героку, или если это вообще возможно. Я не могу найти много документации по этому вопросу.