Приложение чата с использованием ActionCable и Elasticache на Ruby на Rails - PullRequest
0 голосов
/ 15 апреля 2020

Прежде всего, спасибо за внимание к моему вопросу. И извините за мой сломанный Engli sh, так как я не являюсь носителем Engli sh. Пожалуйста, дайте мне знать, если вам когда-нибудь понадобится дополнительная информация или коды.

Что я пытаюсь

В настоящее время я работаю над приложением чата с использованием Action Cable на Ruby на Rails, который я использую AWS как инфраструктура, EC2 и Elasticache (Redis) и ALB.

Ошибка, которую я получил

На консоли не отображается ошибка.

Это журнал от production.log

Could not execute command from ({"command"=>"message", "identifier"=>"{\"channel\":\"ChatRoomChannel\",\"chat_id\":1}", "data"=>"{\"text\":\"test\",\"chat_id\":1,\"user_id\":7,\"action\":\"chat\"}"}) [ArgumentError - invalid uri scheme '']: /var/www/myapp/shared/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:438:in `_parse_options' | /var/www/myapp/shared/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:83:in `initialize' | /var/www/myapp/shared/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis.rb:45:in `new' | /var/www/myapp/shared/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis.rb:45:in `initialize' | /var/www/myapp/shared/bundle/ruby/2.6.0/gems/actioncable-5.2.4.1/lib/action_cable/subscription_adapter/redis.rb:16:in `new'

Коды

environment / production.rb

  config.action_cable.allowed_request_origins = [ 'https://myapp.com', /https:\/\/myapp.com.*/,'http://myapp.com', /http:\/\/myapp.com.*/ ]
  config.action_cable.disable_request_forgery_protection = true

rout.rb

mount ActionCable.server => '/cable'

cable.yml

production:
  adapter: redis
  port: 6379
  url: <%= ENV['REDIS_URL'] %>

ENV ['REDIS_URL'] является основной конечной точкой для Elasticache (redis)

location /cable {
        proxy_pass http://app_server;
        proxy_http_version 1.1;
        proxy_set_header Upgrade websocket;
        proxy_set_header Connection Upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

Что я пробовал

Elasticache был связан с EC2

Другая информация

Ruby 2.6.3 Рельсы 5.2.4.1 AWS (EC2, Elasticache, ALB)

...