問題タブ [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.

0 投票する
1 に答える
815 参照

c++ - WebSocket++ で接続を閉じた後のエラー

私はこれを持っています:

WebSocket++ ライブラリで (ブラウザ クライアントではなく)サーバーによって接続を閉じた後。サーバーは引き続き動作しますが、このエラーを修正するにはどうすればよいですか?

サーバーコード: http://pastebin.com/acbrjLvF

0 投票する
0 に答える
1457 参照

c++ - マルチスレッド websocket++ サーバーがクラッシュする

複数のスレッドを使用するようにwebsocket++ エコー サーバーの例を変更しました。

多くのメッセージを非同期で送信する 1 つのクライアントを使用して接続します。次に、サーバーが次のようにクラッシュします。

Thread Safety に関する websocket++ マニュアルから判断すると、私が行っていることはスレッドセーフである必要があります。

Asio トランスポートは、エンドポイントに完全なスレッド セーフを提供します。複数のスレッドが io_service.run() を呼び出している io_service スレッド プールで動作します。

...

すべてのコア トランスポートは、特定の接続のハンドラーがシリアル化されることを保証します。トランスポート ポリシーと同時実行ポリシーがエンドポイントの同時実行をサポートしている場合、connection_hdl を含むものはすべてスレッド セーフにする必要があります。つまり、connection_hdls を他のスレッドに渡し、それらを無期限に保存し、それらをパラメーターとして受け取るエンドポイント メソッドを任意のスレッドからいつでも呼び出すことは安全です。

ここで何が欠けていますか?


私が使用しているクライアントは NodeJS に基づいています。

client.js

経由で開始:

0 投票する
0 に答える
555 参照

c++ - Websocket++ を使用して特定の IP アドレスにバインドする

Websocket ++ を Websocket サーバーへのクライアントとして使用して、クライアント サーバーの特定の IP を使用して接続したいと考えています。そのため、特定の IP にバインドする方法を見つけようとしていますが、うまくいきません。

on_socket_init ハンドラーを使用してソケットを構成する可能性があると考えましたが、このハンドラーは次のとおりです。

これが起こる原因:

私のローカルマシンでは複数のIPを持っていないので、私が持っている1つのIPにバインドするように指示しようとしています.bind()を呼び出すことができることを確認することを除いて、今のところ何も変更しないでください。しかし、それは爆発し、私には理由がわかりません。2 番目の IP を使用してサーバーでテストすると、同じエラーが発生します。

gdbを使用すると、内部バインド呼び出しのエラーコードをチェックする関数によって例外がスローされることがわかりました。その内部バインド呼び出しのコードがどこにあるのかわかりません。「無効な引数」またはエラー コード 22 以外の情報はありません。これは無効な引数の番号です。

マシンにない偽のアドレスを割り当てようとすると、別のエラー「バインド: 要求されたアドレスを割り当てられません」が発生するので、渡したアドレスで問題ないと思います。

これはこれを行う正しい方法ですか?