問題タブ [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 投票する
1 に答える
943 参照

c - Libwebsockets 2.1.0 - 外部で lws_write を実行するのは違法です

&オプションを有効にしてlibwebsockets-2.1.0を使用しています。generic sessionlwsws

ファイルを開き、コンテンツを websocket に出力するcase LWS_CALLBACK_SERVER_WRITEABLEコードがいくつかあります。

ターミナルでは、これらの束を取得しています:

このエラーの説明はありますか? つまり、私は宣言しchar line[1000]ましたが、それはまだ不平を言っています。

websocketの最終的なline 30-something出力には一貫性がないことを指摘したいと思います。line 400

FWIW、私が読んでいるファイルの合計行は1758行で、行の最長文字長は107文字です。

ループを削除しfgets、値を独自の汎用値に置き換えるとうまくいくようです。

ありがとう

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

javascript - Websocket 経由で Mosquitto に接続できません

Websocket を介して JavaScript クライアントからローカルの Mosquitto 1.4.10 ブローカーに接続できません。

同じ JavaScript クライアントが、Websocket を介してポート 8080 で test.mosquitto.org の公開ブローカーに正常に接続しています。

ポート 1883 での MQTT プロトコル接続は正常に動作しており、mosquitto_pub と mosquitto_sub を使用してテストしました。

私のブローカーは、Ubuntu 14.04 を実行している VirtualBox 内にセットアップされています。

同じ仮想マシンに libwebsockets をインストールしました。

私のローカル ブローカーは、config.mkファイルでWITH_WEBSOCKETS:=yesでコンパイルされました。

同じ仮想マシンの JavaScript クライアント Web ページを Firefox ブラウザーからロードすると、ブラウザー コンソールに次のエラー メッセージが表示されます。

Firefox が ws://localhost:8080/mqtt でサーバーへの接続を確立できない

これを修正するためのあなたの提案は大歓迎です。

ありがとう。

これが私の Mosquitto .conf ファイルです。

Mosquitto サーバーのログは次のとおりです (websockets のログ レベルが 1023 に設定され、詳細ログがオンになっています。JavaScript Web ページを読み込んでもメッセージは表示されません)。

1481381105: mosquitto バージョン 1.4.10 (ビルド日付 2016-12-10 18:47:37+0530)
1481381105 から: /etc/mosquitto/mosquitto.conf から読み込まれた構成。
1481381105: ポート 8080 で websockets リッスン ソケットを
開きます。 1481381105: 初期ログ レベル 1023

1481381105: Libwebsockets バージョン: 2.1.0 manavkumarm@manav-alljoyn

1481381105: IPV6 はコンパイルされていません
1481381105: libev サポートはコンパイルされていません
1481381105: libuv サポートはコンパイルされていません
1481381105: スレッド: 各 1024 fds 1481381105
: mem: プラットフォーム fd マップ: 4096 バイト' ポート 8080、3 つのプロトコル、IPv6 オフ 1481381105: 非 SSL モードを使用 1481381105: ポート 8080 で リッスン 1481381105: mem: per-conn: 376 バイト + プロトコル rx buf 1481381105: canonical_hostname = mqtt 1481381105: ポート 183 ソケットを開く. 1481381105: ポート 1883 で IPv6 リッスン ソケットを開いています。







JavaScript のソース コードは次のとおりです。

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

c - Libwesocket クライアント + サーバー オールインワン

プログラムの目標は、Websockets を介してメイン サーバーに接続し、可能な限り接続を維持することです (クライアント ウォッチドッグ)。

その間、Tasker はクライアントから Json を受信し (Server Behaviour)、それに応じて処理し、応答する必要があります。

これを実行するには、GLib のマルチスレッド メソッドと、ネットワーク部分の Libwebsockets ライブラリを使用します。

C Client/Server Tasker は正常に動作しているため、次のステップは次のとおりです。メイン サーバーとの接続が失われた場合、メイン サーバーが起動するまで「永遠に」再接続を試みるか、別のメイン サーバーにフォールバックします。

ここでの問題は、サーバーとの接続を切断すると、ウォッチドッグ スレッドが再接続を無視しているように見えることです。スレッドは libwesockets コールバックから完全に分離されているためです。

コード スニペットは次のとおりです。

Tasker Server initでのTasker Clientの呼び出し

タスカーサーバーの構成

タスカー クライアントの構成

整数

Tasker クライアント ウォッチドッグ スレッド呼び出し

最後に、Tasker クライアントのスレッド ルーチン ループとスレッド ループの実行コード

さらに精度が必要な場合はお知らせください。読みやすくするために github にアップロードすることもできます。ヘルプやヒントをいただければ幸いです :)。

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

mobile - Web ソケットまたは XMPP ? チャットアプリを作るモバイルアプリはどっちがいい?

チャットアプリを作りたい 私のチャット アプリケーションは、継続的なポーリングとデータのプッシュを使用して、Web サーバーでリアルタイム チャットとして適切に動作しています。しかし、ポーリングはモバイル アプリケーションには適していません。私たちのチャット全体はすでに HTTP Rest API として構築されているため、XMPP への移行は私たちにとって大きなメリットです。

それで、私たちはWebSocketについて知りました。この状況でリアルタイムチャットに適したものを誰か教えてください。WebSocket は非常に高速で、サーバーからの継続的なタイマー ポーリングも必要ありませんでした。

もしあれば、より良いオプションを提案してください。ありがとう:)

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

nginx - libwebsockets クライアントと Nginx のような websocket サーバーの間で通信するにはどうすればよいですか?

Websocketクライアントを実装しようとしています (C でlibwebsocketsを使用しており、オプションではありません)。例として、ライブラリで指定されたtest-client.cを使用しました。私の websocket-client は、実際にはtest-server.cで正常に動作します。しかし、 nginxサーバーとの通信で複雑な問題が発生しました。

私が理解しているように、nginxは私のwebsocketクライアントのサブプロトコルを知らないため、ハンドシャックはうまくいきません。そうですね、test-client.c のように、独自のサブプロトコル (独自の名前、独自のコールバック関数を使用) を実装しているようです。

私の質問は次のとおりです。

  • libwebsocketsで特定の websocket サブプロトコルを使用しない方法はありますか?

  • そうでない場合、 WAMPなどの既存のもの (クライアント側)をこのリストに実装する必要がありますか? (車輪の再発明はしたくない...)

  • そうでない場合、nginxに指定でき、websocket-clientと互換性のある「デフォルト」のwebsocketサブプロトコルが存在しますか? (私はクライアントで単純な送受信アクションを実行しているだけです。libwebsockets サーバーとしか通信できない場合、libwebsockets クライアントを実装してもまったく役に立たないようです)

  • 私の質問は関連していますか?そうでない場合、なぜですか?私は何が欠けていますか?

どんな助けでも大歓迎です。ありがとう!