2014年2月25日火曜日

P2P探訪 StunでNat越え その6 WebRTCでSDPを取得

P2Pの起爆剤になりそうなものとして、もっとも有力なのは、WebRTCではないでしょうか。
WebRTCを用いれば、ブラウザーで、P2Pアプリの機能を提供することができます。

もちろん、WebRTCではSTUNサーバーが利用されています。
さっそく、STUNを介して、自身のアドレスを取得してみましょう。


1. RTCPeerConnection を生成する。
2. RTCPeerConnection#createOffer()をコールする

でOKです。

以下のような値を取得できます。SDPと呼ばれています。

...
...
m=audio 55491 RTP/SAVPF 111 103 104 0 8 106 105 13 126
c=IN IP4 111.100.57.xxx
a=rtcp:55491 IN IP4 111.100.57.214
a=candidate:38022971xx 1 udp 21139371xx 192.168.0.3 55491 typ host generation 0
a=candidate:38022971xx 2 udp 21139371xx 192.168.0.3 55491 typ host generation 0
a=candidate:12749365xx 1 udp 18455016xx 111.100.57.2xx 55491 typ srflx raddr 192.168.0.3 rport 55491 generation 0
a=candidate:12749365xx 2 udp 18455016xx 111.100.57.2xx 55491 typ srflx raddr 192.168.0.3 rport 55491 generation 0
a=candidate:28878806xx 1 tcp 15099573xx 192.168.0.3 0 typ host generation 0
a=candidate:28878806xx 2 tcp 15099573xx 192.168.0.3 0 typ host generation 0

[予告]

次回は、WebRTCを使って、何かします。たぶん、Torrentの考え方を応用したサンプルを紹介します。

○ソース
https://github.com/kyorohiro/HelloWebRTC/tree/master/connectStun

mbedtls dart の 開発を始めた web wasm ffi io flutter

C言語 で開発した機能を、Dart をターゲットとして、Web でも サーバーでも、そして Flutter  でも使えるようにしたい。 そこで、mbedtls の 暗号化の部分を Dart 向けのPackageを作りながら、 実現方法を試行錯誤する事にした。 dart...