Как отслеживать конечную точку веб-сокета Actioncable - PullRequest
0 голосов
/ 27 июня 2019

У меня есть приложение Rails с некоторыми функциями реального времени, предоставляемыми серверами ActionCable, работающими в распределенной среде. Мой интерфейс успешно подключается к действующим кабельным каналам, чтобы быть в курсе изменений статуса

Я бы хотел настроить мониторинг этой конечной точки на wss://www.myjobglasses.com/cable. Например, он используется на страницах вроде this .

Я пробовал несколько решений для мониторинга

Но всем этим поставщикам не удалось успешно подключиться к конечной точке.

На вышеупомянутых веб-сайтах, таких как uptimechecker, я настраиваю мониторинг веб-сокетов следующим образом

  • URL: wss://www.myjobglasses.com/cable
  • После подключения отправьте это сообщение в сокет: {"command":"subscribe","identifier":"{\"channel\":\"MyChannel\",\"id\":\"5a7479fc24c4282c7419062d\"}"}
  • В ответ ожидаем, что сообщение будет содержать confirm_subscription

Мой балансировщик нагрузки приложения AWS настроен на маршрутизацию всего трафика на /cable URL-адреса на фактические серверы, на которых работают серверы ActionCable, и он отлично работает из браузера Chrome для моего приложения в работе (см. Ниже скриншот), но никогда работает с внешнего сайта

action-cable-on-mjg enter image description here

Недавно был добавлен мониторинг веб-сокетов на сайте 24x7, и после обсуждения этой темы они ответили

Похоже, что настроенная вами конечная точка WebSocket прерывает все соединения. Мы не можем подключиться к нему даже с помощью различных инструментов и мест.

Возможно, что контекст с веб-страницы (файлы cookie, заголовки) необходим для установления соединения WebSocket, которое будет присутствовать, когда браузер находится на веб-странице, но не при создании автономного соединения.

Есть ли у вас какие-то подсказки относительно того, что может происходить? Как правильно настроить actioncable мониторинг веб-сокетов (чтобы мы могли получать уведомления, когда служба не работает)?

...