2017-12-13 14 views
-1

過去数日間、私たちは非アクティブWebSocket接続に苦しんでいます。この問題はネットワークレベルで発生する可能性があります。私はスタンドアロンモードでPushion Passengerのwebsocket接続のタイムアウトを設定するスイッチ/設定オプションがあるかどうか尋ねたいと思います。搭乗者の非アクティブWebSocket接続を終了する方法

答えて

0

これはおそらくアプリケーションレベルで解決する必要があります。なぜなら、他のレイヤーでそれを解決するのはもっと醜いからです(websocketに関する知識が少ない)。

乗客のスタンドアロンでは、max_requestsを設定しようとする可能性があります。これにより、アプリケーションプロセスが準定期的に再起動され、プロセスをシャットダウンするときに、通常、乗客はwebsocket接続を中止する必要があります。

再起動期間をさらに細かく制御したい場合は、たとえば、rolling restartsを頻繁に実行するcronジョブを使用することもできます。これはユーザーに気付かないでください。

0

ルビーとパッセンジャーのウェブソケット(そしてたぶんnode.jsでもあるかもしれません)は、サーバーに "ネイティブ"ではありません。代わりに、あなたのアプリケーションはソケットをハイジャックし、すべての詳細(タイムアウト、解析など)を制御します。

これは、Passengerがソケットに関する情報をこれ以上保持しないため、アプリケーション層(または使用しているフレームワーク)にソリューションを実装する必要があることを意味します。

私はこれがあなたが望む答えではないことを知っていますが、それは事実の事実です。

いくつかのアプローチでは、サーバーがWebSocket接続(タイムアウト、構文解析など 'Ruby MRI iodineサーバー)を制御するネイティブWebSocketを使用しますが、主にWebソケットがサーバーから「ハイジャック」され、接続。

関連する問題