はじめに
PhoenixのChannelを触っていて、タイムアウトがうっとうしかったので時間を伸ばせる方法を探して実際に使ってみました。
wscatでPhoenixに接続しているとすぐにタイムアウトする
Disconnected (code: 1000, reason: "")
Websocketのデバッグツールのwscat
でPhoenixのChannelの動作確認をしているとき、一度はこのメッセージをみたことがあるかと思います。
デバッグ中にいちいち切断が切れて面倒なので、タイムアウトしないようにします。
コード
endpoint.ex
socket "/socket", MyModuleWeb.UserSocket,
websocket: [
timeout: :infinity
],
longpoll: false
これだけでできます。
もともとは、
websocket: true
となっているところをこのようにするだけで大丈夫でした。
さいごに
Websocket周りに詳しくなっていけると開発が楽しくなっていくなって思います。
参考リンク
https://elixirforum.com/t/socket-timeout-change-in-phoenix-1-4-9/24841