問題タブ [libwebsockets]

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 投票する
2 に答える
1594 参照

c - libwebsockets: リクエストで IP アドレスを保存する方法

libwebsockets をサーバーとして使用するときに、クライアントの IP アドレスを取得する方法を理解するのに苦労しています。

ドキュメントについて私が理解していることからlibwebsockets_get_peer_addresses、コールバックでのみ使用できますLWS_CALLBACK_FILTER_NETWORK_CONNECTIONが、その時点でユーザーデータ構造体は初期化されていないように見えるため、ここに保存しようとするとセグメンテーション違反が発生します。

Apache や nginx などの他の Web サーバーと同様に、IP アドレスが要求ヘッダーにあると予想していましたが、このライブラリでは、要求プロセスの特定の部分でのみ使用できるようで、ヘッダーにコピーされません。 .

これは私がLWS_CALLBACK_FILTER_NETWORK_CONNECTION内で試みていることです:

strncpy別のコールバック ( ) の内部をテストしたLWS_CALLBACK_HTTPので、それが初期化されたときに機能するはずです。pss

ライブラリのドキュメントを理解するのは非常に難しいと思うので、助けていただければ幸いです。

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

c - libwebsocket ライブラリを Ubuntu にインストールするにはどうすればよいですか?

ubuntu に libwebsocket をインストールしようとしています。

プロジェクトhttps://github.com/warmcat/libwebsocketsをダウンロードして 解凍し、インストール手順に従いました。

コマンド cmake FH を入力すると、次のメッセージが表示されます。

libwebsocket.h を使用する C プログラムをコンパイルしようとしましたが、存在しないと表示されます。このライブラリをインストールする正しい方法を教えてください。助けてくれてありがとう。

0 投票する
2 に答える
3108 参照

c - libwebsocket 送信ペイロードの制限

バイナリデータを送信する libwebsocket クライアントがあります。バイナリ データをバッファ [ie buf] に保存し、ソケットに書き込みました。

私の問題は、ソケットが 22392 バイトしか書き込めないことです [受け取った n= 22392]。l >=22392 バイトの場合、部分書き込みとして認識されます。この値は、アーキテクチャによって異なります。

質問:

  • libwebsocket のデータサイズに制限はありますか?

  • バッファ ペイロード値を拡張する方法はありますか?

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

c - コールバック関数を使用せずに libwebsockets を使用して C プログラムから websocket にデータを送信する方法は?

プロジェクトでは、libwebsockets を使用して Web サーバーと通信しています。問題は、C プログラムから Web サーバーにデータを送信できるのは、データを受信したときだけであり、必要なときにいつでもデータを送信できないことです。libwebsockets を使用してデータを受信せずにデータを送信する方法はありますか?

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

java - Jetty WebSocket クライアントが Binary Listener で機能しない

Jetty WebSocket クライアント バージョン 9.x を使用する Java アプリがあります。サーバーから送信されたテキスト メッセージに対しては正常に機能しますが、バイナリ リスナーは呼び出されません。基本的に複製しているJavascriptクライアントの実装があります。Java で行うのとまったく同じことを Javascript で行っており、同じサーバーを呼び出しています。Javascript は機能しますが、Java は機能しません。そのため、Jetty でバイナリ リスナー用に何かが適切に構成されていないと考えています。

たとえば、サーバーは BLOB データを送信しています。Javascript クライアントでは、binarytype を arraybuffer または blob に設定できることを知っています。Jetty にも同様の設定が必要かもしれないと考えましたが、API をすべて調べ、オンラインで多くの例を検索しました。バイナリ リスナの貴重な例はオンラインにほとんどなく、binarytype の設定や、バイナリ リスナを機能させるために必要なその他の特別な設定についてはどこにも言及されていません。

これが私のコードの統合表現です。コードはさまざまなクラスに分散しているため、これはスタンドアロンのアプリではありませんが、私が何をしているかを示していると思います。サーバーは libwebsockets で実装されています。

クライアントの実装

ソケットの実装