Я пытаюсь использовать ActionCable в качестве транспорта для запросов GraphQL (graphql-streaming
). Запросы GraphQL - это произвольные запросы на данные, поэтому вместо того, чтобы иметь один кабель для каждого запроса, я хотел бы иметь один кабель и мультиплексированные запросы по этому кабелю. Поток может быть, как это:Как остановить потоковое вещание из определенного вещания в ActionCable?
- Подключения к ActionCable
- Подписаться на запрос GraphQL
- Нажимает результат запроса
- Что-то меняется в приложении, нажмите другой результат запроса
- Пользователь изменяет страницу , мы должны отписаться от этого запроса
Я реализую события подписки как потоки, поэтому подписка выглядит так:
stream_from(event_name) { evaluate_graphql_and_push }
Но когда пользователь меняет страницы, я хочу, чтобы канал был подключен, но прекратил передачу из этого события.
Возможно ли это с помощью ActionCable?
Я не _think_ это то, что я хочу: Я хочу, чтобы оставаться подключенным к каналу, но остановить получение событий от некоторых триггеров над этим каналом. Я неправильно понял? – rmosolgo
@rmosolgo В этом случае вам необходимо реализовать два метода, которые передают события и останавливают потоки в Сервере и вызывают эти методы, используя вызов 'perform' в Client. – kevinhyunilkim
https://github.com/rails/actioncable-examples - хороший пример того, что вы хотите. – kevinhyunilkim