Я знаю, что есть еще 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/5/2019
Мой production.log никак не выглядит "запуганным" - все I
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
Но мне нравится верить, что я пропускаю хотя бы пару строк 'log' (например, как это показано в моем файле 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 "заткнулась" - и канал действительно работал, очевидно: $