2016-10-14 24 views
0

私はPHP WebSocketsを使用しています。私は、サーバー上の長いタイムアウト設定したFirefox(およびChrome)のWebSocketタイムアウト

protected function connected ($user) { 
    socket_set_option($user->socket, SOL_SOCKET, SO_RCVTIMEO, array('sec'=>7200, 'usec'=>0)); 
    socket_set_option($user->socket, SOL_SOCKET, SO_SNDTIMEO, array('sec'=>7200, 'usec'=>0)); 
} 

をそれでもFirefoxは、約5分後に切断されます。 Firefoxのタイムアウトが原因であると強く思っています。

タイムアウトの正確な値は何ですか?私のJaveScriptはどのようにそれにアクセスできますか?それを変更することはできますか?

同じことがChromeに適用されます。

答えて

1

SO_RCVTIMEOで設定する内容& SO_SNDTIMEOは、ソケットsendrecvのタイムアウトです。設定された時間内にsendrecvが動作しない場合、エラーが返されます。表示されている切断には関係ありません。

TCP接続では切断されている可能性があります。クライアントまたはサーバーが5分のアイドル・ライン・タイムアウトを設定しています。 TCP接続をそのまま維持するために、アプリケーションレベルのキープアライブメッセージを設定する必要があります。

関連する問題