読者です 読者をやめる 読者になる 読者になる

僕のYak Shavingは終わらない

車輪の再発明をやめたらそこには壮大なYakの群れが

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秒でタイムアウトするので調べてみました。

広告を非表示にする