Google+ãã³ã°ã¢ãŠãããããé »ç¹ã«äœ¿çšãããŠããããã§ãããããã§ãWebRTCãç¬èªã®ã¯ã©ãŠããã¯ãããžãŒã§ã¯ãããŸããã 誰ãç¥ã£ãŠãã-ä»ã®
äžè¬ã«ã瀟å ã§ã®ä¿¡é Œã§ãããã©ã€ããŒããªãããªäŒè©±ã®ãããã¯ã¯ããããŸã§ä»¥äžã«é¢é£æ§ãããããšãèªããªããã°ãªããŸããã å€ãã®äººã ããããå¿ èŠãšããŸãããäœããæŽçããæ¹æ³ã¯ïŒ ãã£ã æ¹æ³ãç¥ã£ãŠããã°ãããã¯éåžžã«ç°¡åã«è¡ããŸã:-)ïŒRFCãw3cã®æšæºãšãã®å®è£ ãååã«ç 究ããçç±ãçªãæ¢ããåŸïŒã
以äžã§ã¯ãå®è£ ã®äž»ãªæè¡çãªã¹ã¯ãå®è¡ããããšããŸããããã¯ç§ãã¡ãèžãŸãªããã°ãªããªãã£ãããããããããªããèžãŸãªããã°ãªããªãã§ããã-ãããŠãã¹ããã¯ã®ããã«ïŒè³ãççºãããäžå¿ èŠãªè©³çŽ°ãªãã§ãç°¡åãªæè¡çå§è¿«ãšããžãã¹TODOã
æè¡
ç»æçãªHTML5ãã¯ãããžãŒã®1ã€ã¯ééããªãWebRTCã§ãã ãGoogleãMozillaãOperaã®ãµããŒããåããŠw3cã«ãã£ãŠéçºãããŸãã ã
ãã®æ¬è³ªã¯ãç§ã®ã³ã³ãã¥ãŒã¿ãŒã«ã«ã¡ã©ããã€ã¯ããã©ãŠã¶ãŒããããã©ãã«ããŠããã©ãŠã¶ãŒãã«ã¡ã©ããã€ã¯ã䜿ã£ãŠä»ã®äººãšãããªé話ãããããšãã§ããããšã§ããé£ã®ããŒãã«ã®ååãšãçŸããã©ãããããã§ããŒãã§æ¥å 济ãããŠããäžåžã®äž¡æ¹ã§ã女æ§ã®èº«äœ ãã®å Žåãæ¥ç¶ã¯æå·åããã1ã€ã ãã§ããã¢ããŒãã¢-2ã®éã ãã§ãã ãã£ãããïŒ ããããããã ãã§ã¯ãããŸããã
ãã®ã¹ããŒã ãæãäžããªãã§ãã ããããããªããšãè³ãççºããå¯èœæ§ããããŸãã æ°å幎ã«ããã£ãŠãéçºãããã¡ãã£ã¢ãã¯ãããžãŒãšãããã³ã«ã¯ããã¬ãã¹ã¿ãžãªãã©ãžãªå±ãé»è©±äº€æå±ãªã©ã®ãã©ãŠã¶å ã«éã蟌ããããŠããŸããã
ãããããåç¥ã®ããã«ãæªéã¯ããããªããšã«é ããŠããŸãã ãããã«ã€ããŠã話ããŸã...
ã·ã°ããªã³ã°
WebRTCãã¯ãããžãŒã®èª¬æã«ã¯ãããã³ããã¯ãªãã©ã°ã¢ã³ããã¬ã€ã®ãµã¯ã»ã¹ã¹ããŒãªãŒãšã ã¹ã¿ã³ ã ã¿ãŒã³ ã ã¢ã€ã¹ ã sdpãšããçšèªã®ã¹ã€ãŒãããã®ã¯ã€ã«ãã§äœã¬ãã«ã®ããŒãã³ã¢ãšãã2ã€ã®èããç°ãªããããã¯ããããŸãã skipipastã¯æ©èœããŸããããããã©ã®ããã«æ確ã§ãããããŸãã¯6ãæéãœãŒã¹ã³ãŒããšRFCã調æ»ããŸãã:-)
ç§ãã¡ãé§ãç«ãŠãçéå ¥ãã®çšèªã®1ã€ã¯ã·ã°ããªã³ã°ã§ãã å®éã3ã€ã®ç°¡åãªã¿ã¹ã¯ãå®è¡ããŸãã
1ïŒ2ã€ã®ãã©ãŠã¶ãŒã®æ§æããããã³ã°ããŸãïŒãªãŒãã£ãª/ãããªã¹ããªãŒã ãã³ãŒããã¯ãã¢ãã¬ã¹ãããã³ããŒã-SDP圢åŒïŒ
SDP ãã®æªå€¢ã¯ãã©ãŠã¶éã§äŒéããããã®è©³çŽ°ã¯åé¿ã§ããŸãã ããããRFCãèªãã åŸã§ããå ç©ç©ã¯æ®ã£ãŠããŸã
2ïŒãã¹ã¯ãŒãã亀æããŠããã©ãŠã¶ãŒéã§æå·åãããæ¥ç¶ã確ç«ããŸã
3ïŒã¢ã¯ã·ã§ã³ã®éå§-ã³ãŒã«ïŒjsã®ã³ãŒã«ããã¯ã§ã¯ã©ã€ã¢ã³ãAã¹ã¬ãããã¯ã©ã€ã¢ã³ãBã¹ã¬ããã«æ¥ç¶ïŒãé»è©±ãåããªã© ã€ãŸã ãã©ãŠã¶ã®jsã§ã¯ã RTCPeerConnectionãªããžã§ã¯ãã䜿çšããŠéåžžã«ç°¡åãªããšãå®è¡ããŠããŸããããªããžã§ã¯ãå ã«ã¯å®éã®ADBããããŸãã
ã€ãŸã ã·ã°ããªã³ã°ã䜿çšããŠãäœã§ãäœã§ãæžã蟌ã¿ãŸã-ãã©ãŠã¶ã¯äºãã«ãããã³ã°ãããããªé話ãè¡ãããšãã§ããŸãã ãããŠãé©ãã¹ãããšã«ããããã³ã«ã¹ã¿ãã¯ã®å 容ãç解ããããšã¯ã§ããŸãããåŒã³åºãã¯é©ãã»ã©ç°¡åã«ãªããŸãã
èŠèŠçã«ä¿¡å·ãéãããšã¯æãããèŠããŸã-å®éãICEãä»ãããã©ãŠã¶å ã®ã¡ãã£ã¢ã¹ããªãŒã ã®SDPèšè¿°ã¯åã«ã远跡ããããŸã...ãããç§ã¯ãã æžãããã£ã-ããã¯æ©èœããŸãã
ãã©ãŠã¶ã¯ãäºããæ¢ããŠããŸã
åŒã³åºãã¯åã«ããŒã«ã«ãããã¯ãŒã¯äžã§ååŸãããŸãããåŸæ¥å¡ãå¥ã®ãããã¯ãŒã¯äžã«ããå ŽåããããŠãã¡ã€ã¢ãŠã©ãŒã«ã®å åŽã§ããããã©ãŠã¶ã¯äœã®å©ãããªãã«æ¥ç¶ã確ç«ã§ããŸããã
æè¡çã«ã¯ãäžèšã®ã»ã¯ã·ã§ã³ãããããã«ããŒãã³ã¢ããããŸããããã«èŠåããŸãããæã§èšããšæ¬¡ã®ããã«ãªããŸãïŒ
1ïŒäŒç€Ÿã®ãã¡ã€ã¢ãŠã©ãŒã«ãããã³ããããã«ã¯ãåŸæ¥å¡ãSTUN / TURNãããã³ã«ã䜿çšããŠç¹å®ã®äžå€®ãµãŒããŒã«æ¥ç¶ããå¿ èŠããããŸãã ãã®ãµãŒããŒã¯ãã·ã¹ãã 管çè ã«ãã£ãŠäœæãããããç¡æã§äœ¿çšã§ããŸãããæ©èœãå¶éãããŠããŸãïŒTURNãªã¬ãŒã¢ãŒãã®ãµããŒãã¯ãããŸããïŒã
2ïŒãã¡ã€ã¢ãŠã©ãŒã«ããçªç Žãããããšãã§ããªãã£ãå Žåãå¯äžã®å¯èœæ§ãæ®ããŸãããã©ãŠã¶éã§ãã¢ããŒãã¢ã§ã¯ãªãããµãŒãããŒãã£ã®ãµãŒããŒãä»ããŠã¡ãã£ã¢ã¹ããªãŒã ã泚ãããšã§ãã TURNãµãŒããŒã®ãã®åäœã¢ãŒãã¯ããªã¬ãŒããšåŒã°ããŸãã ãã®ãããªãµãŒããŒãèªåã§ç解ããå¿ èŠããããŸã- ãªãŒãã³ãªãœãªã¥ãŒã·ã§ã³ããããŸãããWebRTCã§ããããèªåã§æ§æããå¿ èŠããããŸãã ãã ããçµ±èšã«ãããšããããªã³ãŒã«ã®çŽ10ïŒ ã ãããªã¬ãŒã¢ãŒãã«ãªããŸãã
ç¹°ãè¿ããŸããããããªã³ãŒã«ã確å®ã«ç€Ÿå ã«å±ãããã«ããå€éšã®ãSTUN / TURNãµãŒããŒãéžæãŸãã¯äœ¿çšããŸãã
ããã¯ãã¡ãã£ã¢ã¹ããªãŒã ããŠãŒã¶ãŒãã©ãŠã¶ãŒéãçŽæ¥ãŸãã¯äžç¶ãµãŒããŒãä»ããŠç§»åããæ¹æ³ã§ãã ã¯ããããã¯ã²ã©ããŠèŠãç®ãæªãã§ã-ãããããã¡ã€ã¢ãŠã©ãŒã«ã¯ãŸã ãã¡ã€ã¢ãŠã©ãŒã«ãããã³ããããããã®ããè¯ãæ¹æ³ãèãåºããŠããŸããã Skypeããã®ååã«åºã¥ããŠããŸãã
ICEã¯æ°·ã§ã¯ãªããRFCã§å®ããããŠãããããªã¹ããªãŒã ã亀æããããã®æé©ãªã«ãŒããéžæããããã®æè¡ã§ããããšãç解ããªããã°ãããã«å ãžé²ãããšã¯ã§ããŸããã ãããã³ã«ã¹ã¿ãã¯STUN / TURN / ICEã®é床ã®ãugããéè«ççãªè€éãã«ããå ç©ç©ã®ã¬ãã«-ã¯ãªãã£ã«ã«ã¬ãã«ã«å¢å ããŸããã
ãããªäŒè°
WebRTC-ãããªäŒè°ãçŽæ¥ãµããŒãããŸããã ãããª/ãªãŒãã£ãªã¹ããªãŒã ãšãã©ãŠã¶ããããçµåããŸãã Skypeã¯ææãµãŒãã¹ã§ãã Google+ãã³ã°ã¢ãŠãïŒã¡ãªã¿ã«WebRTCã¯äœ¿çšããŸããããChromeãã©ã°ã€ã³ãšç¹å®ã®ã³ãŒããã¯ã§åäœããŸãïŒïŒ-å¶éã¯10ã15人ã§ãã
é£ãããç解ããŠããŸããïŒ ãã¹ãŠã®ãããªã¹ããªãŒã ã¯ã©ããã§åéãããç¹å®ã®åå è çšã®1ã€ã®å人çãªãããªã¹ããªãŒã ã«å€æããã圌ã«è¿ãããå¿ èŠããããŸãã ã€ãŸã 10人ã®å Žåãåå人ãããªã¹ããªãŒã ããåå è ã®ãã¬ãŒã ãååŸãããããããã¹ãã®ãã¬ãŒã ã®äžã®ã©ããã«çœ®ããçæããããã¬ãŒã ãç¹å®ã®åå è ã«æž¡ããŸãã ãŸããWebRTCã³ãŒããã¯ãšäºææ§ã®ãããã©ãŠã¶ãŒããµããŒããããã¬ãŒã ãåéããå¿ èŠããããŸãã èšç®éãæ³åããŠãã ããã ãã®ãããªãMCUãµãŒããŒãã®ãªãŒãã³ãªå®è£ ããããŸãã
1ïŒ licode-ç§èŠæªå å·¥ã§ãããæ£çŽãªMCUã§ã¯ãªãããã ã¹ããªãŒã ãå€éåããŸãã
2ïŒ MCUãããªãã«ãã£ã³ã³ãã§ã¬ã³ã¹ãµãŒã㌠-ãã ããChromeãœãŒã¹ãšWebSocketsãä»ããWebRTCããµããŒãããæåŸã®ã¢ã¹ã¿ãªã¹ã¯ããã®ã³ããŒã®çŽåŸã«èµ·åããŸããã§ããã ãããŠãã©ããããããæã-Javaã®JavaãšJAVã¹ããŒ:-)
æãããã§ãããç§ã¯åæããŸãã
ãã¡ããããããªäŒè°ãéå¬ããããã®åçšè£œåãšæ¥çå šäœããããŸããããã®èšäºã§ã¯WebRTCã®ã¿ã«çŠç¹ãåœãŠãŠããŸãã
WebRTCã§ã¯ããã£ãšç°¡åãªããšãã§ããŸãããããªäŒè°ã§ã¯ãåãã©ãŠã¶ãååå è ã®ãããªã¹ããªãŒã ãä¿æããŸãã jsã®ãã©ãŠã¶å ã§ãããããã°ã©ã ããã·ã°ããªã³ã°ã«é¢é£ä»ããå¿ èŠããããŸãã ã¯ããããã§ã®ãã©ãã£ãã¯ã¯å¢å ããŠããŸããã瀟å ããè€æ°ã®äººã ãžã®é»è©±ã§ã¯ããã®ãœãªã¥ãŒã·ã§ã³ã¯ãã®ã·ã³ãã«ããšå¹çæ§ã«é äºãããŠããŸãã
ãã©ãŠã¶ã¯ç°ãªããŸã
Chrome-Chromeéã®ãããªé話ã¯å®å®ããŠåäœããŸãã ãã®ä»ã®çµã¿åããïŒChromeãFirefoxãOpera-åäœããªãããæ£åŒã«åäœããŸãããå®éã«ã¯åäœããŸããã ããããããã«ããããããã圌ãã¯æ°å¹ŽããChrome-Firefoxãããªé話ã®ä¿¡é Œã§ããæäœãçŽæããŸãã
å²åŠçã«èŠããšããã¹ãŠã®äŒæ¥ãç¹å®ã®ããŒãžã§ã³ã®ãã©ãŠã¶ãŒã«çžãããŠããããã§ã¯ãããŸãã-ãããŠãããããååãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãChromeã§è¡ãããšãã§ããŸãã
WebRTCãšãã¬ãã©ããŒ
ããããçå®ã¯ããã©ãŠã¶ããåºå®é»è©±/æºåž¯é»è©±ã«ããããŠãã®éã«é»è©±ããããŠã¿ãŸãããïŒ å¯èœã§ããã...ããããããã§ã¯ãé³å£°ãšãããªãéä¿¡ããæè¡ã«æ²¡é ããã«è¡ãããšã¯ã§ããŸããã æåã®ãè¡æãã¯SIPãããã³ã«ã§ã ã IPãã¬ãã©ããŒãšSIPã¯è€éãªæè¡ã§ã¯ãããŸããããWebRTCæšæºã§ã¯SIPã«ã€ããŠã¯èšåãããŠããŸãã:-)
ãããŠããã¹ãŠãã·ã³ãã«ã§ã-SIPã®æã§è°è«-ããã¯äžçš®ã®åŒ·åã§æè»ãªã·ã°ããªã³ã°ã§ãïŒäžèšãåç §ïŒã ããããèªåã§ä¿¡å·ãæžãå Žå-ãªãSIP
ãã®äžäžèŽã«ãããSIPãç解ããWebRTCãä»ããŠãã©ãŠã¶ããããã³ã°ã§ããjsã©ã€ãã©ãª ïŒ
SIPã¯WebRTCã§ã·ã°ããªã³ã°ãè¡ãããšã§ãããããæ·±å»ãªã®ã¯ãè€éã§åæ£ããŠããŸãã
äžèšã®åé¡ã解決ããå¥ã®æ¹æ³ã¯ãã®ãããªåŒã³åºããå°éãšããäŒç€Ÿã®ãµãŒãã¹ã䜿çšããããšã§ãã 詳现ã«é£ã³èŸŒãããšãªããç¹å¥ãªjs-libraryã䜿çšããã ãã§ãäŒç€Ÿã®ç¹å¥ãªWebãµãŒãã¹ãéããŠåºå®é»è©±ãšæºåž¯é»è©±çªå·ã«é»è©±ããããããšãã§ããŸãã
ãããã£ãŠããã©ãŠã¶ããé»è©±çªå·ã«é»è©±ããããã¿ã¹ã¯ã解決ãããŸãã
ãŸãšãããš
äºå®ãèŠçŽããæ©äŒãšãªã¹ã¯ãæ¯èŒæ€èšããŸãããã å®å šãªãããªã³ãŒã«ãç¬ç«ããŠåççãªæéå ã«äŒç€Ÿã«å±éã§ããŸãã æè¡ã¯ãªãŒãã³ã§ã説æãããŠãããããªãã¯ãžã£ã³ã°ã«ã«å ¥ãããšãã§ããªã-ãªããªã ç§ã¯ãã¹ãŠã®ãªã¹ã¯ã客芳çã«èª¬æããããŒãã³ã¢ã®æè¡ççµã蟌ã¿ãé«ããããšããŸããã
瀟å ã§WebRTCãä»ããŠãããªé話ãéå§ããã«ã¯ã次ã®ããšãå¿ èŠã§ãã
- äŒç€Ÿã®ããžãã¹ããã»ã¹ã®è©³çŽ°ãèæ ®ã«å ¥ããŠãADã®åŸæ¥å¡ã®ãªã¹ãã«ã¢ã¯ã»ã¹ã§ããããªã©ã®ã·ã°ããªã³ã°ãèšè¿°ããŸãã
- äŒç€Ÿã®ããŒã«ã«ãããã¯ãŒã¯ã®å€éšã«1-2å°ã®STUN / TURNãµãŒããŒãèšçœ®ããŠãããŸããŸãªäŒç€Ÿã®ãªãã£ã¹ãã¢ãã€ã«ããã€ã¹ããã®ãããªé話ãæ¥ç¶ããŸãã æå·åãããŠããå Žåã§ãããããªãã©ãã£ãã¯ããããã®ãµãŒããŒãééããå ŽåããããŸã
- è€æ°ã®äººåãã«ãããªäŒè°ãéå¬ããããã®éåžžã«çã®è£œåãŸãã¯ããªãè€éãªè£œåãšã®çµ±åãè©Šã¿ããããããªäŒè°ã®WebRTCå®è£ ãèšè¿°ããŠãã ãã
- äŒç€Ÿãšã®éã§éåžžã®é»è©±çªå·ã«é»è©±ããããå¯èœæ§ã®ããã«ãã²ãŒããŠã§ã€ããšçµ±åãã
æè¡çã«ã¯ãã¿ã¹ã¯ã¯è§£æ±ºå¯èœã§ãã ããããããããã¹ãŠãè¡ãæéããªãå Žåã¯ãããšãã°ãäžèšã®ãã¹ãŠããµããŒããã補åãŸãã¯ã¯ã©ãŠããµãŒãã¹ ïŒç¡æã®ç»é²ãšãã©ãã§ãé話ã§ããã¢ã«ãŠã³ãã®100ã«ãŒãã«-ãã¯ãããžãŒããã¹ãããŠãå¿ èŠãã©ãããç解ã§ããŸãïŒã䜿çšã§ããŸãããã«äœ¿ãããããªé話æè¡ãšãSTUN / TURNãããã³ã«ããµããŒããããããªãµãŒããŒã®ã¯ã©ã¹ã¿ãŒã䜿çšããŸãã
ãã¯ãããžãŒãªãã¬ãŒã·ã§ã³
å®è£ ãªãã·ã§ã³ãéžæãã瀟å ã®ãã©ãŠã¶ãŒããã®ãããªé話ã®äœ¿çšãéå§ããŸããã ã©ããããããæ²é»ããŠããããŸãã¯åœŒããããã«ã€ããŠç¥ããªããšãã1ã€ã®ãã€ã³ãããããŸã-éãæããããšãäžå¯èœãªãšãããŸããªã±ãŒã¹ãå¯èœã§ãã ããã¯ããã©ãŠã¶ãŒããäºããçŽæ¥èŠã€ããããšãã§ããïŒICEãä»ããŠãã¢ããŒãã¢ãã€ã³ã¹ããŒã«ããïŒãæåŸã®æ©äŒã䜿çšããããšããŠãããšããäºå®ã«ãããã®ã§ããå€éšãªã¬ãŒãµãŒããŒãä»ããŠæ¥ç¶ã確ç«ããŸãã... ã ãã ããTURNã¯UDPãä»ãããªã¬ãŒã¢ãŒãã®ã¿ããµããŒãããŠããŸãïŒè©³çŽ°ã«ã€ããŠã¯RFCãåç §ããŠãã ããïŒã ãããèš±å¯ããã®ã«åå-ãšãããªé話ãåã³åäœããŸãã
å¥ã®äžè¬çãªè³ªåã¯ããã©ãã£ãã¯ãšãããªã®ãµã€ãºã§ãã TURNãµãŒããŒã®ãªã¬ãŒã¢ãŒãã§ã¯ã1ã€ã®æ¥ç¶ã1ç§ãããæ°çŸãããã€ããæ¶è²»ããŸãããã©ãã£ãã¯ã¯ããã©ãŠã¶ãŒã®ãããªã®ãµã€ãºã«çŽæ¥äŸåããŸãã ã€ãŸã ãªã¬ãŒã¢ãŒãã§é«å¯åºŠã®ãããªäŒè°ãå¿ èŠãªå Žåã¯ãäºåã«æ€èšããŠãã ããã
ãããããç§ãèå³æ·±ãæçšãªããšãäŒãããã£ãã®ã¯ããã ãã§ãããã æ°å¹Žãäœæ¥äžã®ãããžã§ã¯ããåŸæ¥å¡ã®æºè¶³ããç¥ãããŸãïŒ