2

Poco C ++ libのWebSocketクラスを使用して、サーバーアプリケーションにクリーンなインターフェイスを構築しようとしています。

私の問題は、サンプルのWebSocketサーバーアプリケーションを使用すると、60秒後にソケットがクライアントに対して閉じられることです-そして、それをはるかに長く持続させる必要があります(+ 15分と考えてください...)

HTTPレイヤーのタイムアウトを10分(3600秒)に設定しようとしましたが、これは動作に違いはありません。

残念ながら、Pocoの例とドキュメントは少し薄いので、ここの誰かが助けてくれることを望んでいました。

4

3 に答える 3

1

タイムアウトは次を使用して設定できます

ws.setReceiveTimeout(Poco::Timespan(days, hours, minutes, seconds, microseconds));

どちらかの側が閉じるまでwebsocket接続を維持する方法は?

于 2014-09-23T08:35:20.237 に答える
0

接続が閉じられる理由は、 WebSocket がhandlerのスタックに作成されるためです。ハンドラーはリクエストごとに呼び出され、存続期間は短いです。より長く存続させるには、ヒープ上に作成し、ファクトリ (またはその他の存続期間の長いオブジェクト) でそれへの参照を保持して、HTTP 要求が処理された後も存続するようにする必要があります。

于 2015-10-23T14:03:14.300 に答える
0

タイムアウトは、WebSocket 自体ではなく、スレッド (プール) が原因である可能性があります。コンストラクターを介して別のアイドル時間を設定したい場合があります。http://pocoproject.org/docs/Poco.ThreadPool.htmlを参照してください。

于 2015-08-18T04:50:54.730 に答える