問題タブ [beast-websockets]
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.
ubuntu - CMake から Boost 1.66 および 1.67 で Beast にアクセスする方法
Beast で CMake プロジェクトを作成しようとしています。ソースから適切にインストールされて/usr/local/include/boost
いますが、CMake でそれを見つけることができません。だったのかもしれないと思ったので3.10.2
、疲れましたが、どちらもうまくいきませんでした。誰も何をすべきか知っていますか?3.11.4
3.12.0-rc1
環境: WSL で Ubuntu 18.04LTS を使用する Windows CLion 2018.1.5。
CMake を実行しようとすると、次のエラーが発生します。
boost - boost::beast でコールバック地獄を回避する方法は?
boost::beast/asio を使用したいアプリケーションに取り組んでいます。Websocket 接続を介してデータを受信し、同時に REST API に要求を発行する必要があります。
boost::beast websocket/HTTP 非同期クライアントの例では、完了ハンドラで次の非同期操作が開始されるようです。これは、node.js アプリケーションで見たのと同じ「コールバック地獄」を引き起こしているようです。
これを回避するために、アプリケーションで単純なステート マシンを使用して、次に開始する操作を決定することを考えています。アプリケーションで while ループを使用して、io_context で poll() を呼び出し、その後ステート マシン コードを実行することを考えています (例: switch(state) { ... state = nextState; } )。
ただし、これにより、メイン スレッドが常にステート マシンを実行している間に 100% の CPU を消費するビジー ループが作成される可能性があります。
私の推論は正しいですか? post() のようなものを使用して、ステートマシンを進めるファンクターをキューに入れる方がよいでしょうか?
c++ - コールバックなしでブースト関数を呼び出す
Websocket 接続に boost-beast ライブラリを使用しています。何が起こっているのかを理解するために、この例を参照できます。同じ例を使用しましたが、いくつかの点を変更しました。
on_handshake(beast::error_code ec)
を 3 つの関数A(beast::error_code ec)
に分割しB(beast::error_code ec)
、C(beast::error_code ec)
B()
はバイナリ データを送信し、A()
とC()
はテキストを送信しています。A()
コールB()
バックとしてB()
呼び出し、コールバックC()
として呼び出します。
今、私はこれをしたい時点で立ち往生しています:
読み取り関数は次のとおりです。
質問:-機能B()
と私の質問を確認してください。アドバイスや回答をいただければ幸いです。