Я знаю, что есть еще 1-2 вопроса по этой теме, но ни один из них, похоже, не охватывает мою точку зрения и не предлагает решения;
Консоль моего браузера говорит:
WebSocket connection to 'wss://sucker.alco.dk/cable' failed: WebSocket is closed before the connection is established.
Я бы легко согласился на это, если бы только «кабель» вообще работал :( Работа в разработке заставила меня броситься в банк, но, увы, в производстве все не так блестяще, я боюсь :(
Мой Ruby довольно старый — 2.1.2p95 — мой Rails несколько новее:
# Gemfile
gem 'rails', '~> 5.1.6', '>= 5.1.6.2'
gem 'mysql2', '>= 0.4.4', '< 0.6.0'
gem 'puma', '~> 3.7'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'redis', '~> 4.0'
Я добавил задачу на github.com/puma/puma, но как и другие участники из этого сообщества отмечают, что они используют почти те же самые настройки - с успехом - поэтому они любезно указывают пальцем на Rails; В основном я думаю, что упускаю какую-то глупую деталь :$
На github.com/wdiechmann/sucker есть демонстрационный проект, если вы готовы к некоторой отладке, но доброе слово, мокрый платок на лоб или полное молчание - я не привередлив ;)
РЕДАКТИРОВАТЬ 24.05.2019
Мой production.log никоим образом не выглядит запуганным — все я
I, [2019-05-24T07:19:01.182723 #21335] INFO -- : [9855de1f-65b0-41d5-bdd1-726dad5a875e] Started GET "/cable" for 92.246.28.33 at 2019-05-24 07:19:01 +0200
I, [2019-05-24T07:19:01.183340 #21335] INFO -- : [9855de1f-65b0-41d5-bdd1-726dad5a875e] Started GET "/cable/" [WebSocket] for 92.246.28.33 at 2019-05-24 07:19:01 +0200
I, [2019-05-24T07:19:01.183425 #21335] INFO -- : [9855de1f-65b0-41d5-bdd1-726dad5a875e] Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: upgrade, HTTP_UPGRADE: websocket)
I, [2019-05-24T07:19:11.398314 #21335] INFO -- : Finished "/cable/" [WebSocket] for 92.246.28.33 at 2019-05-24 07:19:11 +0200
I, [2019-05-24T07:19:12.545945 #21335] INFO -- : [6d9a5967-57c7-45bf-b99e-2f3d74ba72f6] Started GET "/cable" for 92.246.28.33 at 2019-05-24 07:19:12 +0200
I, [2019-05-24T07:19:12.546559 #21335] INFO -- : [6d9a5967-57c7-45bf-b99e-2f3d74ba72f6] Started GET "/cable/" [WebSocket] for 92.246.28.33 at 2019-05-24 07:19:12 +0200
I, [2019-05-24T07:19:12.546677 #21335] INFO -- : [6d9a5967-57c7-45bf-b99e-2f3d74ba72f6] Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: upgrade, HTTP_UPGRADE: websocket)
I, [2019-05-24T07:19:22.914389 #21335] INFO -- : Finished "/cable/" [WebSocket] for 92.246.28.33 at 2019-05-24 07:19:22 +0200
Но мне нравится верить, что я пропустил хотя бы пару строк «журнала» (например, как это показано в моем development.log)
Started GET "/cable" for ::1 at 2019-05-24 07:39:47 +0200
Started GET "/cable/" [WebSocket] for ::1 at 2019-05-24 07:39:47 +0200
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
MessageChannel is transmitting the subscription confirmation
MessageChannel is streaming from message_channel
- и я бы очень хотел, чтобы моя консоль DevTools заткнулась - и канал действительно работал, очевидно :$