問題タブ [ice4j]
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.
java - Ice4j: エージェントが処理を終了したらどうすればよいですか?
単純なアプリケーションで ice4j を使用しようとしていますが、ice エージェントの処理が終了したらどうすればよいかわかりません。アプリケーションは実際に IceMediaStream に書き込むことができますか? そうでない場合、どのように情報を収集して、書き込み可能なストリームを作成できますか? ice4j に関するドキュメントはほとんどなく、JUnit テストを読んでも役に立ちませんでした。
java - Ice4j: IcePseudoTcp のテスト - STUN サーバーが必要ですか?
IcePseduoTcp をテストするプロセスを知っている人はいますか? それは自己完結型ですか、それとも動作させるために STUN サーバーを指す必要がありますか?
java - Ice4j: リモート エージェントを探す
Ice4j を使用しようとしていますが、チュートリアルなどはありません。ソースコードを見てみましたが、すべてが別の場所にあり、何も説明されていません。
IcePseduTcp テストを読み、独自のテストを実装したいと考えていますが、問題は、テストがローカル エージェントとリモート エージェントの両方を作成し、それらが相互に対話することです。2 つのプログラムを分離して、1 つはローカル制御エージェントとして機能し、もう 1 つはリモート エージェントとして機能し、ローカル エージェントにリモート エージェントを検出させるにはどうすればよいですか?
関数Ice.transferRemoteCandidates
は両方のエージェントを使用しますが、最初のエージェントを使用して他のエージェントを見つけるにはどうすればよいですか?
java - Ice4J: 4G ネットワークで Ice State Failed
Ice4j の TURN 部分を実行する方法を知っている人はいますか? 電話がWiFiにあるときは機能するが、モバイルネットワークにあるときは機能しないようにコーディングすることができました。
TCP 経由でエージェント情報を送信し、シグナリング プロセスを使用する代わりに手動で接続を構築しています。TCP接続はすでに正常に機能しているため、TCPの問題ではないと思います。多分私はエージェントを間違って構築していますか?
STUN が機能しない場合は TURN サーバーを使用することになっていることはわかっています。パブリック TURN サーバーの多数のリストを提供しましたが、何か不足している可能性があります。パケットが正しく送信されていない可能性がありますか?
エラー: (ほとんどの場合、ALLOCATE-REQUEST(0X3) の送信に失敗しました)
スクリプト (サーバー側とクライアント側の両方に、これと同様のコードがあります):
java - ICE4J はローカル IP のみを取得します
ローカルのイントラネット経由で問題なく接続していますが、もちろんポイントはルーターの外にあり、問題が発生しています。リストにパブリック IP アドレスが表示されていないことが問題だとは思いません。
https://github.com/opentelecoms-org/ice4j/blob/master/test/test/SdpUtils.javaによって生成された SDP 情報は次のとおりです (10.0.0.2 はローカルです)。
私のコードは、ストリームごとにハーベスターを追加します (それが正しいかどうかはわかりません):
何かご意見は?ローカル IP アドレスしか取得できないのはなぜですか??
java - ICE4J データグラムパケットが小さすぎます
通常の DatagramSocket は正常に動作します... ICE4J DatagramSocket はデータを切り捨てるようです!?
送信サイズのパケットは 2,500 ですが、受信側は常に 1500 です (通常の Java DatagramSocket では、受信パケット サイズは送信サイズと同じです)。
受信終了:
スレッド内:
送信側は、Android 上で実行されることを除いて、ほとんど同じです...
非動作コードの唯一の違いは、最初の段落が送信と受信に使用されることです。通常の Java Socket を使用すると動作します (ただし、もちろんルーターの背後にはありません。そのため、Ice4J を使用しています)。
nat - インターネット上のice4j接続
私は ice4j をダウンロードし、インターネット上の 2 台のマシンでIcedistributed の例 ( https://github.com/jitsi/ice4j/blob/master/src/test/java/test/IceDistributed.java ) を試していました。LAN 内の 2 つの異なるマシンでこの例を実行すると、この例は機能しますが、インターネット上ではなぜか機能しません。
以下はログです
ログを見ると、どういうわけかパブリックIPアドレスとそのバインディングポートが表示されますが、どういうわけかそのsdp情報で接続が成功しないため、理由を理解できません. どんな助けでも大歓迎です...
java - Stun と ice4j を使用してパブリック IP とポートを受信する方法
手短に話そうと思います。
サーバーを経由せずに、2 つの Java アプリ (後で Android に転送される) 間の通信を作成したいと考えています。そのため、私は何週間もかけて探し回り、多くの作業を行った後、stun と ice4j を見つけました。ここで見つけたice4jの使用方法の最良の説明は、スタンサーバーをエージェントに追加するために何をする必要があるかをほとんど示していました(エージェントが何であるかはよくわかりません.STUNとの通信を管理するだけです)および TURN)、このコードを介して:
ただし、この後、チュートリアルでは、 githubSDPUtils
で見つけた ice4j のソース コードにあるクラスを使用して、エージェントから SDP 情報を受け取ります。ただし 、中央の maven リポジトリから ice4j.jar を取得し、それを通常の netbeans プロジェクトに追加しました (これを行ったのは、maven にあまり詳しくなく、通常のプロジェクトに通常のライブラリが必要だったからです)。このjarライブラリにはクラスがありません。このコードを自分で修正するのに十分なほど理解していないので、上記のコードを修正するのを手伝ってくれるか、方法の例を見せてくれるかどうか疑問に思っていました.タイトルの質問に答えます。SDPUtils
ただし、最後の文で私が言ったことを実行するか、いくつかのサンプル コードを教えてもらえない限り、あなたの助けはおそらく役に立たないでしょう。わかりません。
私はこれを理解するために今週末までに持っています。ですから、助けていただける方、または知っている方がいらっしゃいましたら、どうぞよろしくお願いいたします。
ここまで読んでくれて、助けてくれてありがとう:)