2016-09-15 49 views
2

Actioncableで、インターネットでの損失をシミュレートするためにWi-Fiを無効にすると、Connectionのdisconnectメソッドが起動されませんでした。タイムアウト切断をアクティブにする方法は?Actioncableタイムアウト切断が発生しません

ここでは、レール/カピストラーノ/プーマ/ nginxのとactioncableの私の設定です:

Railsの側:

# config/cable.yml 
staging: 
    adapter: redis 
    url: redis://localhost:6379/1 

# cable/config.ru 
require ::File.expand_path('../../config/environment', __FILE__) 
Rails.application.eager_load! 

run ActionCable.server 

とカピストラーノ/ PUMA

set :puma_rackup, -> { File.join(current_path, 'cable/config.ru') } 

nginxの側:

upstream app { 
    server unix:/home/ubuntu/rails-app/shared/tmp/sockets/puma.sock fail_timeout=0; 
} 

server { 
    listen 443 ssl; 
    server_name ws.domain.co; 

    ssl on; 
    ssl_certificate /etc/letsencrypt/live/domain.co/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/domain.co/privkey.pem; 

    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; 

    location/{ 
    proxy_pass http://app; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade websocket; 
    proxy_set_header Connection Upgrade; 
    } 

} 

答えて

2

私もこの問題に遭遇したのだが、切断が引き金を行うようです。それはドキュメントによると数秒ではなく、ほんの数分です。

'watch -n 1 'netstat -na | grep YourPort'実際に接続が残っていることを確認すると、切断コールバックが発生しないようにすることができます。

この問題に関してgithubで問題をオープンしました。 https://github.com/rails/rails/issues/27082

関連する問題