問題タブ [rtcdatachannel]
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.
javascript - WebRTC - DataChannel - モバイルインターネットに適していますか?
ここで説明されているこのコードを使用して、派手なライブラリを使用せずに webrtc データチャネル接続を作成しました。Websocket はシグナリングに使用されます。
これで、グローバル IP を持つサーバーでノード アプリを実行すると、WebSocket を介して 2 つのブラウザー インスタンスに接続できます。その後、両方のブラウザがデータチャネル経由で接続できるようになります。
ここで、携帯電話のブラウザー (最新の chrome ブラウザー) を使用して 1 つのブラウザー インスタンスを置き換え、同じことを試しました。悲しいことに、接続は行われませんでした。携帯電話で 2 つの 2 つのブラウザー インスタンスを使用すると、すべてが同様に機能します。
したがって、2 つのブラウザが同じマシン内にない場合、またはモバイル インターネットを備えた携帯電話で NAT トラバーサルが機能しない場合、シグナリングに何か問題がある可能性があります。
モバイル インターネット デバイスが理論的に NAT トラバースできると断言できる人はいますか? (モバイル プロバイダーがネットワーク トポロジをどのようにセットアップするかはわかりません)
webrtc - オーディオ/ビデオとファイル転送に同じ WebRTC チャネルを使用できますか?
私はWebRTCの初心者です。ユーザーがお互いのビデオ ストリームを表示したり、ファイルを交換したりできるアプリケーションを構築しています。オーディオ/ビデオ部分が実装され、機能しています。問題は、ファイルを交換する機能を追加する必要があることです。以下のコードを使用して PeerConnection オブジェクトを初期化しています
_getConnection は、次を使用して新しい RTCPeerConnection オブジェクトを作成します
つまり、明示的な制約はありません。また、さまざまなイベント ハンドラーを初期化します。この直後に、オーディオ/ビデオ ストリームをこの接続に接続します。また、パートナー ID を使用してこれらの接続をキャッシュするので、後で使用できます。
問題は、後でキャッシュから接続オブジェクトを呼び出して、次のような方法でデータ チャネルを追加できるかどうかです。
それを使用してファイルを共有しますか、それとも新しい RTCPeerConnection オブジェクトを作成してデータ チャネルを接続する必要がありますか?
angularjs - webrtc datachannel コードは FF では機能しませんが、Chrome ではうまく機能します
webrtc datachannel を使用して非常にシンプルなチャット アプリを作成しました。これは Chrome - Chrome ではかなりうまく機能しますが、FF - Chrome、Chrome - FF、FF - FF ではまったく機能しません。これは角度のある私の完全なコードです
この
さらにプレフィックスを追加する必要がありますか?
video - データ チャネル + メディア ソース拡張 API を使用してローカル ビデオを送信する
私はしばらくWebRTCピア接続をいじっていましたが、ピア接続とp2pビデオで可能なことを広げているようです(少なくとも今は)
現在、Media Source Extensions API を調べて、代替の回避策を作成している可能性があります。
先週ほど MSE API をいじって、これまでのところ、ローカルの .webm ビデオ ファイルを動作させることができました。つまり、ビデオ ファイルを断片に分割し、html ビデオ要素に表示しています。
次に、ノードサーバーでビデオをチャンクしてクライアントに送信し、クライアントが MSE API を使用してビデオを表示しようとしました (MSE の使用方法の実際の例)。
今、p2p データチャネルを介して html ビデオ要素からローカル ビデオを送信し、MSE API を使用して受信側クライアントでビデオをつなぎ合わせることが可能かどうか疑問に思っています。これは、WebRTC ピア接続が現在すでに行っていることをほぼ再作成することになります。
人々がこれらの API を通常使用するものではないので、まだこれを試した人がいるかどうか疑問に思っています。とにかくすぐにこれを試してみます:]
google-chrome - webrtc: chrome のデータ チャネル経由で arraybuffer を送信できませんでした
ArrayBuffer
Chrome 拡張機能から Chrome アプリにストリーミングデータ(chrome.runtime.sendMessage
のシーケンスとして) を送信postMessage
したいArrayBuffer
. 最終的に、私の場合、WebRTC overRTCDataChannel
が良い解決策になる可能性があることがわかりました。
を介して文字列を送信することに成功しましたRTCDataChannel
が、送信しようとすると次のようArrayBuffer
になりました。
1 バイトのデータを送信したにもかかわらず失敗したため、帯域制限の問題ではないようです。これが私のコードです:
OSX 10.10.1、Chrome M40 (Stnble)、M42 (Canary) でテスト済み。および Chromebook M40 で。
ここで WebRTC のバグを報告しました。
android - Android WebRTC DataChannel バイナリ転送モード
WebRTC を使用して、2 台の Android フォン間でデータを転送することができましたDataChannel
。
一方では、データを送信します。
一方、このコールバックは、isBinaryFile
値 に関係なく呼び出す必要があります。
任意のファイルの場合、isBinaryFile
がfalseの場合、コールバックが呼び出され、テキストを印刷したり、ファイル (画像、pdf など) を再構築したりできます。
isBinaryFile
がtrue の場合、次のエラーが発生します。
これを読んだ後、 を使用する必要があるように見えますがSCTP DataChannels
、方法がわかりません!
javascript - WebRTC データ チャネルを開始するにはどうすればよいですか?
Web ソケットを使用してクライアント間に WebRTC データ チャネルを作成しようとしています。
いくつかのICEサーバーをリストしました
次に、チャネルとオファーを作成し、それを Web ソケット経由で送信する接続関数があります。
次に、接続にオファーを追加して応答を送信するコールバックがあります。
また、データ チャネルが追加されたときのコールバックも設定しますが、これは起動しません。私は何が欠けていますか?
最後に、応答記述子を接続に追加する別のコールバックがイニシエータにあります。
ソケットのものとデータチャネルのものを除くすべてのコードは、 MDN の基本的な使用法ページからほぼそのまま引用されています。
ローカルホストで Chrome を使用してテストしているので、ファイアウォールは問題になりません。
交換が行われると、両方の接続にローカルおよびリモートの記述子が設定されます。データチャンネルreadyState
はconnecting
. PeerConnection のiceConnectionState
isnew
とそのsignalingState
is stable
。
何が欠けていますか?
android - Android で PeerConnection.createDataChannel() を使用する
Android用のwebrtcを構築し、プロジェクトにjarファイルを含めました。データ チャネルを PeerConnection オブジェクトに接続したいと考えています。Web では、javascript で次のことを行います。
また
ここで、pc は PeerConnection です。
ネイティブ webrtc コードを使用して、Android 上の Java でも同じことをしたいと考えています。少し戸惑います。Eclipse で Jar ファイルを見ると、PeerConnection の createDataChannel メソッドが String 型と Init 型の 2 つの引数を受け取ることがわかりました。
2番目の引数に何を入れればよいのか理解できませんでした。私が見つけたWebRTCのドキュメントは、Webアプリケーション用です。以下の WebRTC ドラフト ドキュメントを見たことがありますが、よくわかりませんでした。
http://www.w3.org/TR/webrtc/#methods-2
誰かがそれをどのように使用すべきかの小さな例を提供できると助かります.
現在、私はこれをやろうとしています:
android - new PeerConnectionFactory() はアンドロイドでエラーを出します
Android に WebRTC DataChannel を実装しようとしています。DataChannel を開いて WebRTC を使用してネットワーク経由でデータを送信する単純なピア接続オブジェクトを作成したいと考えています。PeerConnection オブジェクトを作成しようとするとエラーが発生します。factory を使用して、 を使用してピア接続オブジェクトを作成することを学びましたfactory.createPeerConnection()
。
このために、まず PeerConnectionFactory オブジェクトを作成する必要があります。この後、それを使用して PeerConnection オブジェクトを作成できます。PeerConnectionFactory オブジェクトを作成しようとするCould not find method android.media.MediaCodec.setParameters
と、エラーが発生します。Fatal Signal 11 (SIGSEGV) at 0x00000000 (code=1)
また、次のコードを試してみましたPeerConnectionFactory.initializeAndroidGlobals(this, false, false, false);
これは私がやろうとしていることです:
これは私の Peer オブジェクトがどのように見えるかです:
Android で DataChannel を実装するサンプル ソース コードを教えてもらえますか? また、正しい方法で行っていない場合はお知らせください。その方法を説明している Android Native WebRTC のドキュメントが見つかりませんでした。WebでWebRTCを使用して学んだことをすべて実装しようとしています。
私の質問が明確でない場合はお知らせください。