問題タブ [boost-beast]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ブロッキング読み取り機能をタイムアウトで処理することは可能ですか?
クライアントとサーバー間の非同期通信用のブースト Websockets に取り組んでいます。
現在、プログラム中に経過した時間boost::timer::auto_cpu_timer
を で出力しています。経過時間を秒単位で表示しています。
私のプログラムのスニペットを以下に示します。
この関数は、データを websocket に送信します。
この関数は、websocket 応答を読み取ります
この関数は Web ソケットを閉じます
私のプログラム出力は次のようになります。 websocket から受信した応答は灰色で表示されます (の出力cout << beast::buffers(ReadBuffer_.data());
) 残りは、プログラムのさまざまな場所に出力される couts です。経過時間は秒単位です
IBM 認定
WS 読み取り前の経過時間: 0 WS
読み取り後の経過時間: 0.3先に進むまでの時間 : 0.3
ReadSocket に行くWS を読むまでの
時間 : 0.3 WS を読んでからの
経過時間 : 2.1先に進むまでの 時間:2.1
ReadSocket に行くWS を読むまでの時間:2.1 WS を読んでからの経過時間:2.1先に進むまでの経過時間: 2.1
ReadSocket に行く
WS を読み取るまでの経過時間: 2.1プッシュされたイベント: FILE_WRITE_DONE
WS を読み取ってからの経過時間: 34
先に進むまでの経過時間:34
//プログラムは -1 で終了します
質問:
数秒後2.1
、プログラムは再び ReadSocket に移動し、ws_.read(ReadBuffer_);
ソケットから何かを受け取るまで、ほぼ 32 秒間実行をブロックします。この場合、「セッション タイムアウト」を受け取ります。
このブロックが 5 秒間オンになっている間に、どうすれば CloseSocket に移動できますか。つまり、いつでもws_.read
コードを 5 秒以上ブロックしている場合は、CloseSocket などの動作を実行したいと考えています。
boost - ブースト Web サイトからの例の実行中のエラー
スタックオーバーフローからのいくつかの議論の助けを借りて、すべてブーストマニュアルに従ってソースからインストールしました:
1.ブーストの apt-getエッセンシャル
2. ./bootstrap
3. ./b2
まだエラーが発生していますが、どのOSの例が機能するかについて経験から誰かが知ることができます. Mac 用のブーストをインストールしようとしましたが、リンク エラーが発生しました... 1.70 ブーストは必要ありません。おそらく以前のバージョンです。自分のプロジェクトでビーストを試してみたいだけです (1.66 で導入されました)。
私は獣から例を構築しようとしています: https://www.boost.org/doc/libs/1_70_0/libs/beast/example/advanced/server/advanced_server.cpp
メイクファイル:
ターミナル:
ソース バージョン 1.7 からブーストをインストールしました...このエラーを検索しようとしましたが、結果はありませんでした。
回答:
git リポジトリから最新の例を取得してください。助かりました、頑張ってください!