2016-07-15 14 views
1

私は、着信接続で時折停止するwebsocketサーバーを持っています。 telnet server.tld 8080で接続し、何も入力しないでこの動作を再現できます。telnet connection stalls websocket server

telnetで接続をエナゲートしても何も入力しないと、サーバーは着信接続を検出しますが、stream_socket_accept()コールは1分間停止します。正確に60秒。毎回。

この状況を悪化させるのは、stream_socket_accept()がタイムアウト変数AND default_socket_timeoutを完全に無視するという事実です。

ストールを中止するにはどうすればよいですか?

答えて

1

ソケットサーバーがphp-cliとして実行されるため、default_socket_timeoutは無視されました。したがって、読み込まれたphp.iniファイルは、PHPのapacheモジュールバージョンとは異なります。私はこれを知らなかった。 stream_socket_acceptが正常に動作しないうちに、タイムアウトを強制することができます。ini_set('default_socket_timeout',$timeInSeconds);

関連する問題