Канал ActionCable не подключается, пока страница не будет перезагружена - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть кабель, который отлично работает, если я вручную обновляю страницу, но если я перехожу на него, он никогда не начинает потоковую передачу.

При правильной работе я вижу это в консоли Rails:

ChecklistPdfChannel is transmitting the subscription confirmation
ChecklistPdfChannel is streaming from checklist_pdf_2-5a-ntiasohen-gattopuin

Вот код сценария:

document.addEventListener 'turbolinks:load', ->
  if !App.presence
    App.presence = App.cable.subscriptions.create({
      channel: 'ChecklistPdfChannel',
      issueable_id: window.location.pathname.split('/').splice(2,1).toString()
    },
      connected: ->
      disconnected: ->
      received: (data) ->
        console.log(data)
        $('#pdf_status').html "#{data.html}"
  )
return

Я пробовал следующее:

  • добавлен метатег: <meta name="turbolinks-cache-control" content="no-cache">
  • добавлен 'data-turbolinks-track': 'reload' к вызовам ресурсов в макете

поведение одинаково как в разработке, так и в подготовке /производство (Heroku).

Rails 5.2.2, ActionCable 5.2.2, Turbolinks 5.2.0

1 Ответ

0 голосов
/ 17 февраля 2019

Таким образом, единственный способ, которым я смог заставить это работать, состоял в том, чтобы добавить этот метатег на страницы, где мне нужен был активный кабель:

<meta name="turbolinks-visit-control" content="reload">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...