WebRTCについて最初に聞いたとき、その見通しに興奮しました。WebSocketのように聞こえましたが、サーバーはありませんでした。残念ながら、私が見つけたすべてのチュートリアルは、WebRTCのビデオとオーディオの側面を強調しています。ブラウザ間でのテキスト/データ/JSONの送信について何も見つかりません。WebbRTCを使用して、あるブラウザーから別のブラウザーにデータを送信するだけで、ある種の単純なhelloworldを作成するのを手伝っていただけませんか。
7 に答える
これは暗闇の中での刺し傷ですが、最新のWeb APIエディターのドラフトには、ピアツーピアデータAPIのDataChannel
一部としてインターフェイスがあります。
ただし、現在のワーキングドラフトにはこのAPIがないため、非常に新しく、まだ実装されていない可能性があります。
DataChannelはFirefox(18+)とChrome(25+)に実装されましたが、まだ初期の段階です。
詳細については、HTML5Rocksの記事「GettingStartedwithWebRTC」を参照してください。
この機能は、出荷用のWebRTC実装にはまだ実装されていません。他の投稿者が示しているように、最新のWebRTCエディターのドラフトにはDataChannel APIが含まれていますが、このためのプロトコルはまだ開発中です。このAPIは、今年後半にChromeとFirefoxで公開される予定です。
これは古い質問ですが、webRTCを学び始めたので、答えようと思います。
まず第一に、いくつかの誤解:
WebSocketのように聞こえましたが、サーバーはありません
一部の情報(メディアセッション管理、ノードのネットワーク構成/マルチメディア機能)が適切に交換およびネゴシエートされるまで、WebRTCピア間でデータを転送する方法はありません。これを行うには、サーバーとシグナリングが必要です(これは、webRTCの一部ではありません。必要に応じて実装できます)。
シグナリングが完了したら、次のようなRTCPeerConnectionを作成する必要があります。
if (navigator.webkitGetUserMedia) {
RTCPeerConnection = webkitRTCPeerConnection;
} else if(navigator.mozGetUserMedia){
RTCPeerConnection = mozRTCPeerConnection;
RTCSessionDescription = mozRTCSessionDescription;
RTCIceCandidate = mozRTCIceCandidate;
}
その後:
var connection = new RTCPeerConnection(servers);
この後、このPeerConnectionにデータチャネルを追加できます。
var dataChannel = connection.createDataChannel("channelName",{ reliable: true });
これが完了したら、電話sendChannel.send('Any data you want');
をかけるだけで、必要なデータが送信されます。
どちらかといえば、この本は本当に役に立ちました。未回答の質問がたくさん残っていますが、最初は良いです。
マットはすでに知っていると思いますが、グーグルのゲストの場合:はい、できます。データチャネルを使用します。
あなたの側で:
channel = somePeerConnection.createDataChannel("a Label");
channel.onopen = function() { channel.send("any thing") };
反対側:
somePeerConnection.ondatachannel = function (evt) {
evt.channel.onmessage = function (evt) {
alert( evt.data );
};
};
この例を参照してください。
http://peerjs.com/は進化しており、ブラウザインスタンス間のp2pデータ転送のための構文のようなWebSocketを提供します
Justinが示したように、プロトコルとAPIはまだ確定されていません。最新のIETFで、JSAPIの下にあるマイナープロトコルのドラフトを提出しました。最終的なフォームは、編集者のドラフトの現在の提案に非常に近い可能性がありますが、受信側からも「未開封」になるのを待つ必要があります。
APIはWebSocketAPIでモデル化されており、WebSocket実装からDataChannelへのコードの移動を容易にしますが、WebSocket内のすべてのアイテム(urlなど)が引き継がれるわけではなく、明らかにDataChannelは、WebSocketにはない多くの機能を追加します。部分的に信頼できるデータ。