Saya pikir Anda perlu mengkonfigurasi sistem operasi Anda sebagai gantinya. Mengubah parameter keepalive oleh program belum didukung secara luas. Ini akan membantu Anda:
Menggunakan TCP keepalive untuk Mendeteksi Kesalahan Jaringan
Juga parameter Anda dipilih dengan buruk. Jika tcp_keepalives_count=1
bekerja maka bahkan satu paket keepalive yang hilang akan menjatuhkan koneksi Anda. Dan paket tunggal sering hilang. Saya akan menggunakan yang berikut ini di /etc/sysctl.conf
di MacOSX/FreeBSD:
net.inet.tcp.keepidle =60000
net.inet.tcp.keepintvl =10000
OS kemudian akan memutuskan koneksi paling lama 140 detik (60 detik idle + 8 paket keepalive dalam interval 10 detik) setelah kehilangan konektivitas.