問題タブ [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.
ssl - Mosquitto で websocket を使用して TLS を適用する方法は?
mosquitto+websocket ブローカーをテストしようとしています。
mqtt-javacript を含む私の Web サイトは https を使用するため、wss:// プロトコルを使用する必要があります。まず、ブローカー TLS オプション (cafile、certfile、key) に適用すると、うまく機能しました (websockets ではありません)。
しかし、設定ファイルに websockets オプションを追加すると、wss:// ではなく ws:// プロトコルでのみ機能します。
なぜTLSが適用されなかったのかわかりません.....この問題について知っている誰かが私を助けてください...
http://mosquitto.org/man/mosquitto-tls-7.htmlで CA と証明書ファイルを作成する手順に従いました。
c - グローバルなユーザー定義構造体を各コールバック libwebsockets C に渡す方法
これがlwsに関連しているかどうかはわかりませんが、コールバック間で値を保持するグローバル構造を渡す方法が見つかりません。簡単な話は、C https://github.com/cgjones/android-system-core/blob/master/libcutils/hashmap.cに単純なハッシュテーブルがあるということです
私は例で説明しようとします:私はメインを持っています:
これはcallback_wsapi Cファイルです。重要なものを表示するためだけにコードの割り当てを削除しました
したがって、最初のリクエストでのみハッシュマップを取得できます: LWS_CALLBACK_RECEIVE
に到達すると、スコープが失われます。
質問:
1. このハッシュマップをコールバックに対してグローバルにするにはどうすればよいですか? サーバーの合計ユーザーを保持するはずです。
javascript - Websocket ラッパーを使用する場合、データはどのように「フレーム化」されますか?
私はCaddy ServerとWeb Socket Daemonをテストして、サーバー環境から WebSocket をサポートすることがどれほど簡単かを確認してきました。これらのソリューションはどちらも、選択したコマンド ライン プログラム (選択した任意の言語で記述) からの標準入出力を使用する抽象化です。
ただし、どちらのプログラムも行ベースです。つまり、コマンド ライン プログラムが改行文字を含む単一の「メッセージ」を標準出力に書き込む場合、JavaScript Websocket コードは 2 つの異なるメッセージを表示します。
この問題を回避する方法はありますか?
編集:非公式の回答として、改行の問題を回避するために複数のエンコーディングを実行できます。たとえば、コマンド ライン プログラムが JSON でエンコードされたデータで応答している場合、データを標準出力に書き込む前に単純に base64 でエンコードできます。atob()
JavaScript は、 JSON でデコードする前に、このデータを呼び出します。複数のエンコーディングを使用すると、わずかなサイズのオーバーヘッドが追加されますが、改行文字の問題 (およびその他の非印刷文字や制御文字に関する潜在的なその他の問題) は回避されます。
nginx - NGINX - Websocket クライアントのサポート
簡単な質問ですが、Nginx は websocket クライアントをサポートしていますか。
NGINX を使用する Web サーバーがあり、NGINX がプロキシとして機能する WebSocket サーバーを使用しています。同じポートで、websocket クライアントを使用して外部 websocket サーバーとの接続を開始できますか?
c - libwebsockets クライアントが接続に失敗する
libwebsockets 2.0 を使用していますが、それをクライアントとして使用してサーバーに接続しようとすると、いくつか問題が発生します。
libwebsockets のログによると、かなり単純なクライアントが に接続しようとすると、次のようになりecho.websocket.org
ます。
このログによると、getaddrinfo
失敗したように見えますが、その上の行 (libwebsockets が接続しているアドレスを出力するはずです) は空の文字列を返しています。
さらに奇妙なことに、Valgrind を介してテスト コードを実行すると、すべて正常に動作しているように見えます。
含まれているすべての例/テストは問題なく機能するため、どこに問題があるのか 本当にわかりません。
問題のあるコードはこちらです。問題がコード内にあるのか、それともライブラリの問題なのかはわかりません。
c++ - C# UI アプリケーションから webscokettpp クライアントのブロックしているクライアント接続を閉じる
webscokettpp c++ クライアントを使用して、Web サーバーから投稿されたデータを読み取ります。c++ クライアント dll を呼び出してソケットにポストされたデータを取得および表示するテスト ボタンを備えた ac# UI アプリケーションがあります。テスト ボタンがクリックされると、データが 2 回目の UI に適切に投稿されます。既存の接続を閉じて、新しい接続を開いて結果を再度取得します。しかし、最初の実行後、プログラムは決して c.run(); から戻りません。次のコードで。https://github.com/zaphoyd/websocketpp/blob/master/examples/echo_client/echo_client.cppの例を使用しています
条件 if(pt.get("test") = "close" ) が発生したときに c.run() から出るメイン メソッドへの方法を見つけようとしています。