問題タブ [androidasync-koush]

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 に答える
535 参照

android - AndroidAsync: websocket 接続の設定に失敗しました

私は、データを転送するための Web ソケット接続を確立したバックエンド サーバーのセットがある製品に取り組んでおり、そのためにAndroidAsync(V2.1.6)クライアント ライブラリを使用しています。これらのサーバーは、さまざまなバージョンの tomcat で実行されています。

Android側からは正常に動作しており、今日まですべてのサーバーで問題なくwebsocketが確立されていましたが、現在、それらのサーバーの1つで接続を確立できません。

ジレンマは、Android 側からもサーバー側からもコードに変更がないことです。同じコードは、この特定のサーバーではなく、すべてのサーバーで正常に機能します。

何時間もの調査の結果、接続が失敗しているサーバーが、最新の tomcat 構成と、他のすべてのサーバーで使用していない同じtomcat バージョン (V8.0.23)で最近更新されたことがわかりました。そして、サーバー担当者の 1 人が、変更ログを分析して、Tomcat の Web ソケットに関連するいくつかの変更があることを知りました。

この問題を調査して取り除くためにあらゆることを行いましたが、問題を解決できません。

そのサーバーで AndroidAsync を使用して接続しようとしたときのサーバーからのスタックトレース:

お分かりできると良いのですが。どんな種類の助けも素晴らしいでしょう。ありがとう。

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

android - Koushik Dutta による Android Async ライブラリでのハートビート間隔の設定

Android SocketIO クライアント ライブラリとして com.koushikdutta.async:androidasync:2.1.3 を使用しています。ライブラリでデフォルトのハートビート間隔を変更する方法はありますか?

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

android - AndroidAsync 切断時間が非常に長いのはなぜですか?

AndroidAsync koush 低レベル ネットワーク プロトコル ライブラリを使用しています。WebSocket でサーバーに接続しています。接続、メッセージの送受信、切断ができます。切断時間が非常に長いです。サーバーは、平均 59 秒間切断を検出しません。

問題を再現するために、WebSocket に接続し、承認し、10 秒ごとに ping を開始します。その後、機内モードをオンにすると、ネットワーク接続が切断されます。この時点で setClosedCallback メソッドが呼び出されます。このメッセージをログに記録する方法は次のとおりです。

これは、WebSocket が閉じたことを知らせるログ メッセージです。

WebSocket クローズ例外: recvfrom 失敗: ETIMEDOUT (接続タイムアウト)

ただし、サーバーは約 59 秒間切断メッセージを受信しません。私たちのサーバーはこれらのライブラリを使用しています:

  • gevent==1.0
  • gevent-websocket==0.9.2
  • greenlet==0.4.2

私の側でこれをスピードアップする方法はありますか?サーバーの担当者が切断メッセージをより速く取得できるように、低い値に設定できるソケット レベルのタイムアウトはどこかにありますか?

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

android - Android koush/ion 投稿リクエストがファイアウォールによってブロックされている

サーバーに投稿リクエストを送信するためにkoush/ionライブラリを使用しています。自宅のwifi、友人のwifi、モバイルデータ、およびオフィスのwifiを除く他のモバイルデータを使用して動作します。

null を返しますが、なぜだろうと思っていました。どういうわけかエラーを出力することができ、WFilter が私の要求をブロックしたことが示されました。その後、ファイアウォールを管理しているオフィスの IT 担当者にリクエストのログを確認するよう依頼したところ、koush/ion からのストリーミング リクエストがブロックされていることがわかりました。ストリーミング フィルターを無効にすると、koush/ion を使用して投稿リクエストを再度送信できました。

私の質問は、ion/koush に、これが起こらないようにするために通常のコードに追加できるものはありますか? ポートが関係しているのかどうかはわかりませんが、オフィス以外のほとんどのインターネット接続で機能する簡単なコードを次に示します。

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

android - contentType application/json を使用して Android AsyncHttpServer に POST すると、リクエストの本文が null に設定されます

Android デバイスでAsyncHttpServerが動作しています。次のように設定された POST の reqquest コールバック メソッドがあります。

server はnew AsyncHttpServer()、 mapper はnew ObjectMapper()

で始まる行にブレークポイントがList<T>あり、次のように cURL を使用してサーバーにデータを POST しようとしています。

何らかの理由で、set を return に設定して投稿しているときに、Content-Typeコンテンツタイプをbody に変更すると、期待どおりに cURL を含む JSON データ セットが含まれますapplication/json request.getBody()nulltext/plain

なぜこれが起こるのか、どうすれば動作させることができContent-Type: application/jsonますか?

0 投票する
3 に答える
225 参照

sockets - AndroidAsync TCP -- 書き込みを使用してソケットを検出する適切な方法が利用できなくなりましたか?

AndroidAsync ライブラリを使用して開かれた TCP ソケットが使用できなくなったことをクライアント側で確認する適切な方法は何ですか? これは、(プレーン TCP、非 AndroidAsync) サーバーが明示的にソケットのクローズを開始しなかった場合です (そのため、ClosedCallback は呼び出されません)。たとえば、サーバーがコールド リブートされた場合です。

DataCallback は、サーバーがデータを送り返す場合にのみ使用でき、エラー メッセージの受信には使用できないようです。

私にもそう思われる

例外もスローしません。

したがって、この時点では、クライアントが定期的にデータを書き込む場合でも、ソケットが使用できなくなったことを検出する方法がわかりません。