問題タブ [websocket++]
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++ で接続を閉じた後のエラー
私はこれを持っています:
WebSocket++ ライブラリで (ブラウザ クライアントではなく)サーバーによって接続を閉じた後。サーバーは引き続き動作しますが、このエラーを修正するにはどうすればよいですか?
サーバーコード: http://pastebin.com/acbrjLvF
c++ - マルチスレッド websocket++ サーバーがクラッシュする
複数のスレッドを使用するようにwebsocket++ エコー サーバーの例を変更しました。
多くのメッセージを非同期で送信する 1 つのクライアントを使用して接続します。次に、サーバーが次のようにクラッシュします。
Thread Safety に関する websocket++ マニュアルから判断すると、私が行っていることはスレッドセーフである必要があります。
Asio トランスポートは、エンドポイントに完全なスレッド セーフを提供します。複数のスレッドが io_service.run() を呼び出している io_service スレッド プールで動作します。
...
すべてのコア トランスポートは、特定の接続のハンドラーがシリアル化されることを保証します。トランスポート ポリシーと同時実行ポリシーがエンドポイントの同時実行をサポートしている場合、connection_hdl を含むものはすべてスレッド セーフにする必要があります。つまり、connection_hdls を他のスレッドに渡し、それらを無期限に保存し、それらをパラメーターとして受け取るエンドポイント メソッドを任意のスレッドからいつでも呼び出すことは安全です。
ここで何が欠けていますか?
私が使用しているクライアントは NodeJS に基づいています。
client.js
経由で開始:
c++ - Websocket++ を使用して特定の IP アドレスにバインドする
Websocket ++ を Websocket サーバーへのクライアントとして使用して、クライアント サーバーの特定の IP を使用して接続したいと考えています。そのため、特定の IP にバインドする方法を見つけようとしていますが、うまくいきません。
on_socket_init ハンドラーを使用してソケットを構成する可能性があると考えましたが、このハンドラーは次のとおりです。
これが起こる原因:
私のローカルマシンでは複数のIPを持っていないので、私が持っている1つのIPにバインドするように指示しようとしています.bind()を呼び出すことができることを確認することを除いて、今のところ何も変更しないでください。しかし、それは爆発し、私には理由がわかりません。2 番目の IP を使用してサーバーでテストすると、同じエラーが発生します。
gdbを使用すると、内部バインド呼び出しのエラーコードをチェックする関数によって例外がスローされることがわかりました。その内部バインド呼び出しのコードがどこにあるのかわかりません。「無効な引数」またはエラー コード 22 以外の情報はありません。これは無効な引数の番号です。
マシンにない偽のアドレスを割り当てようとすると、別のエラー「バインド: 要求されたアドレスを割り当てられません」が発生するので、渡したアドレスで問題ないと思います。
これはこれを行う正しい方法ですか?