Mojolicious::Lite で WebSocketのタイムアウトの時間を修正する
あくまでMojolicious 2.59に限った話かもしれませんがいくつかのサイトでタイムアウトの問題が解決できないとあったので調べてみました。
MojoでWebSocketするときのまとめ - のらねこの気まま暮らし
Mojolicious::LiteのWebSocketのタイムアウトは300秒 - M.C.P.C.
ていうかもしかして昨日修正されたのかこれ?
Mojolicious::Controller - search.cpan.org
”For mostly idle WebSockets you might also want to increase the inactivity timeout, which usually defaults to 15 seconds.”
# Increase inactivity timeout for connection to 300 seconds
Mojo::IOLoop->stream($c->tx->connection)->timeout(300);
具体的には以下の場所に挿入してやると変更できます。
my $clients = {}; websocket '/echo' => sub { my $self = shift; # デフォルトだとタイムアウトが15秒なのを300秒に修正 Mojo::IOLoop->stream($self->tx->connection)->timeout(300); ... }
今のバージョンだとデフォで15秒でタイムアウトするので調べてみました。