問題タブ [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++ - ブースト - WebSocket ハンドシェイクがリモート ピアによって拒否されました
Kraken websocket API に接続しようとしていますが、「WebSocket ハンドシェイクがリモート ピアによって拒否されました」というエラーが表示されました。
Websocket 用のラッパー クラスと、取引所の残りの API クライアントを作成しました。Binance Websocket API ではうまく動作しますが、Kraken Websocket 接続は失敗しました。
異なるタイプの tls(ssl::context ctx_webSocket{ ssl::context::tlsv13_client };) バージョンも試しましたが、結果は同じでした。
c++ - Boost::Beast によってラップされた UNIX ドメイン ソケットのファイル アクセス許可を変更する
stream_protocol::acceptor acceptor_;
クラスc'torで初期化されるタイプからオブジェクトを取得しました
init が完了すると、UNIX ソケット ファイルが作成されると思います。
ただし、アクセス許可を設定しようとすると、ファイルが存在しないという例外が発生します。
実際、async_accept 操作時にのみ作成されます。
したがって、一方向では、アクセス許可を変更するためにソケット ファイルが必要です。逆に言えば、ソケットを作成するには、接続を受け入れる必要がありますが、クライアントがこのファイルにアクセスする権限を持っていないため、接続を受け入れることができません。
このデッドロック シナリオを解決する方法はありますか?
c++ - boost::beast websocket 実装でのコルーチンの使用 - 並列メッセージ処理のサポート
安全な websocket boost::beast 実装を使用しています。現在のメッセージが処理されている間に新しいメッセージを受信できるようにしたいと考えています。そこで、コルーチン (yield を使用したメソッド) を使用して試してみることにしました。
- これは私の websocket オブジェクトです:
- そして、これが私のwebsocketリスナーコードの呼び出し方です
そして、これが私の websocket ハンドラー メソッドのしくみです。これは 2 つの部分に分かれていることに注意してください。
まずは初期化部分。
次に、新しいメッセージを読み取る準備ができている websocket メインループ。
したがって、私の質問は、現在のメッセージを処理しながら、以下のこのコードがサーバーから新しいメッセージを取得するのに適しているかどうかです ( sendPostFetchItems
httpsendPostDownloadNewVersion
ポスト要求をトリガーしてサーバーの応答を待つため、時間がかかる場合があります)。そうでない場合は、新しいメッセージがキューに入れられ、現在のメッセージハンドルが完了する次の反復を待っていると想定できますか?
私の 2 番目の質問は、catch ステートメントに関するもので、これが接続を再試行する適切な方法であるかどうかです。