クライアントはTCPソケットを介してSSL(openssl)を使用してサーバーに接続します。
進行中の通信がない場合、2時間(追加数分)後、クライアントは「ソケットエラー。ピアによる接続のリセット」というメッセージを表示します。
この警告を受けた後、クライアントは新しい接続を開くように数日間テストしましたが、パターンは2時間ごとに繰り返しました。クライアントとサーバーでクローン操作を見ましたが、これを実行できる操作は表示されません。
ソケットサーバー(reactphp)は、ソケットが閉じられているかどうかを知りません。
2時間ごとに接続がリセットされる原因は何ですか?これを実行できるカーネル構成設定はありますか?
答え1
TCP接続を維持します。 2時間後に使用しないと接続が切断されます。簡単に変更できます。バラよりhttp://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html
簡単に言うと、公開されたカーネル調整可能な「tcp_keepalive_time」を使用すると、/proc/sys/net/ipv4/tcp_keepalive_time
必要に応じてデフォルトの7200から変更できます。