ã¿ã¹ã¯ãšããŠãã€ã³ã¿ãŒãããã«æ¥ç¶ããªããŠããããŒã«ã«ãããã¯ãŒã¯å ã®2ã€ã®ïŒãããŸã§ã®ïŒåºå®ããã€ã¹ãŸãã¯ã¢ãã€ã«ããã€ã¹éã§ãªãŒãã£ãªããã³ãããªé話ãå¯èœã«ããç°¡åãªã¢ããªã±ãŒã·ã§ã³ãäœæããããšã決å®ãããŸããããã®ãããªã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ããŒã«ãšåææ§æã¯ãé«åºŠãªenikeyãåé¡ãªãåŠçãããŠãŒã¶ãŒã«é»è©±ããããæ¹æ³ã瀺ãããšãã§ããããã«ååã«åçŽã§ããå¿ èŠããããŸããé©åãªã¹ãã«ãããã°ãèšèšãšæ©èœã®é¢ã§ããããªæ¹åãè¡ãããšãã§ããŸããã¯ã©ã€ã¢ã³ãã¯ããã«ãã¡ãã£ã¢å ¥åºåããã€ã¹ãåããé©åãªãã©ãŠã¶ãå®è¡ã§ããããã€ã¹ã§ããå¿ èŠããããŸãïŒFirefoxãŸãã¯Chrome- 5æã®ãã¹ããããŒãžã§ã³ã®ããã§ãïŒã
ããã¯ã©ã®ããã«è¡ãããŸãã
ãåç¥ã®ããã«ã2人ã®å å ¥è éã®éä¿¡ã®ããã®WebRTCãã¯ãããžãŒã¯ãRTCPeerConnectionã¿ã€ãã®ãªããžã§ã¯ãã®äœ¿çšãææ¡ããéçºè ã®äž»ãªã¿ã¹ã¯ã¯ãçºä¿¡è ãšçä¿¡è ã®éã®ããã¹ãæ å ±ïŒSDPãªãã¡ãŒãSDPåçãICEåè£ïŒã®äº€æãæŽçããããšã§ããèšãæãããšãéçºè ã¯æåã«ãã©ãŠã¶JavaScriptçšã®APIã䜿çšããŠããã¹ããã£ãããäœæããæ¬¡ã«ãã«ãã¡ãã£ã¢éšåãããã«ã¢ã¿ããããå¿ èŠããããŸã-RTCPeerConnectionã€ãã³ããšããŒã¿åä¿¡ãéä¿¡ããã³åŠçããããã®ã¡ãœããã
å®è£ ããã³ããã¹ããã£ããAPIã®ãã¯ãããžã®éžæã¯ãéçºè ã«å§ããããŠããŸããå€ãã®äººïŒç¹ã«RTCPeerConnectionã®å ¬åŒäŸã§ã¯MozillaïŒã¯ãWebSocket APIãšå¯Ÿå¿ãããµãŒããŒïŒããšãã°ãNode.JSïŒã䜿çšããããšã奜ã¿ãŸããããããå±éãã§ããã ãç°¡åã«ãããšããç§ãã¡ã®ã¿ã¹ã¯ãèæ ®ããŠãç¹ã«ããŒãžãšã¹ã¯ãªãããã¯ã©ã€ã¢ã³ãããã€ã¹ã«é ä¿¡ããããã«ããµãŒããŒã¢ããªã±ãŒã·ã§ã³ãé床ã«è€éã«ããªãããšããå§ããããšã«ããŸããã远å ã®WebãµãŒããŒãå¿ èŠã§ããããããã£ãŠãAPIã¯ãåãWebãµãŒããŒãžã®å®æçãªã¯ã©ã€ã¢ã³ãåŒã³åºãã§xmlHttpRequestã䜿çšããããšã決å®ããŸãããã¯ã©ã€ã¢ã³ãããã€ã¹ã®ãªãœãŒã¹ïŒããã³ããããªãŒïŒã®æ¶è²»ãšãã¬ãŒãããªããšããç¹ã§å®å šã«æ©èœãããšã¯èšããŸããããéçºæã«ããã€ãã®ãã¥ã¢ã³ã¹ãèæ ®ã«å ¥ããã°æ£ç¢ºã«æ©èœããŸããå€åãæ¬¡ã®ããŒãžã§ã³ã§ã¯ãWebSocketãµãŒããŒã远å ããããã«å¿ããŠAPIãåèšèšããŸãããäžåºŠã«ãã¹ãŠã§ã¯ãããŸããã
Lazarus forWindowsã§ãµãŒããŒéšåãäœæããããšã決å®ãããŸããããããã¯ãŒãã³ã°æ©èœã¯ãSynapseããã±ãŒãžã«ãã£ãŠæäŸãããŸããããæå³ã§ãããã¯ãããã転èŠã§ããããã¹ãŠãæå³ãããšããã«æ©èœãããããã«ãç§ã¯çå£ã«ããããåããŠããã€ãã®ãã³ããååŸããå¿ èŠããããŸããããã ãã1ã€ã®exeã2ã€ã®dllïŒOpenSSLã©ã€ãã©ãªïŒãèªå·±çœ²åSSLèšŒææžãšãã®ããŒã®ãã¡ã€ã«ãããã³ããã€ãã®æ§æãã¡ã€ã«ïŒããã³éçïŒã䜿çšãããšããµãŒããŒã®ãã¯ãããžãŒã®ã¬ãã«ãã¢ããªã±ãŒã·ã§ã³ã®èµ·åæ¹æ³ãããŸãæ°ã«ããå¿ èŠããããŸããããã®ãµãŒããŒã®æåã®ããŒãžã§ã³ã¯ãWindowsXPã®2009Asus Eee PC 900ã§ã32ããããã«ãã§ãã¹ãããŸããããæè¿ãéåžžã®è¶ äœéSSDãããã¢ãã³ã§ããªã¥ãŒã ã®ããSSDã«çœ®ãæãããšãã圢ã§ããŒãããªãã£ãããã§ã¯ãããŸãããããã¯ããã©ãŒãã³ã¹ã®èгç¹ããã§ãããããŠããµãŒããŒã®ãã€ã³ã¹ããŒã«ãã¯ãããŠã³ããŒãããzipã¢ãŒã«ã€ããé©åãªãã©ã«ããŒã«è§£åããŸãããŠãŒã¶ãŒã¢ã«ãŠã³ãã®æ§æã®JSONãã¡ã€ã«ãç·šéããããã°ã©ã ã®exeãã¡ã€ã«ãèµ·åããŸãïŒãŠã£ã³ããŠã«ã¯ãã¿ã³ããããŸãããã³ãã³ãã©ã€ã³ã§ãã©ã¡ãŒã¿ãŒãæå®ããŠWebãµãŒããŒãããã«èµ·åã§ããŸãïŒãã©ãããããããç§ã¯ãã®ãããªçµéšãããã®ã§ããã£ãšæ·±å»ãªãµãŒããŒéšåã«ã€ããŠèããŠããŸããäœäºã«ã朮æãšãããã®ããããŸãã
APIã®å®éã®æ§æã«å ããŠããµãŒããŒã¯ãã©ãŠã¶ãŒçšã®éçãã¡ã€ã«ïŒãã°ã€ã³ããã³ãã£ããã®WebããŒãžãã¹ã¿ã€ã«ãç»åãã¹ã¯ãªãããåŒã³åºãé³ïŒãæäŸããŸããäžè¬çã«ã¯ããµãŒãããŒãã£ã®ã©ã€ãã©ãªãã§ããã ã䜿ããªãããã«ããŸãããããã¶ã€ã³ãšhtmlã¬ã€ã¢ãŠããããã»ã©ç±ããªããããjQuery.UIã䜿çšããããšã«ããŸããããããã£ãŠãWebãµãŒããŒãéçãšããŠéä¿¡ããjQueryã䜿çšããŸãããã¹ãŠã®éçãã¡ã€ã«ã¯ãããã°ã©ã ãã©ã«ããŒã®åå¥ã®ãµããã©ã«ããŒã«ãããŸãããã¡ãããå¿ èŠã«å¿ããŠé©åãªã¹ãã«ã䜿çšããŠãç£èŠãããã倿Žãããããããšãã§ããŸããJavaScriptã§ã¯ãã³ãŒãã«ã³ã¡ã³ããä»ããããŠãããå¿ èŠã«å¿ããŠã³ãŒãããåŠã¶ããšãã§ããŸãã
ã³ãã¥ãã±ãŒã·ã§ã³ãæŽçããæ¹æ³
éä¿¡ãæŽçããããã®äž»ãªç®çã¯ãã¯ã©ã€ã¢ã³ãããã€ã¹ïŒã³ã³ãã¥ãŒã¿ãŒãã©ããããããã¹ããŒããã©ã³ãã¿ãã¬ããïŒãšããµãŒããŒãïŒã¯ã©ã€ã¢ã³ããšããŠãæ©èœããïŒãåããWindowsãã·ã³ãéžæããŠå ±éã®ãããã¯ãŒã¯ã«çµåããããšã§ããã¯ã©ã€ã¢ã³ãããã€ã¹ãããããŒãžã§ã³7以éã®Androidã§é廿°å¹Žéã«ãªãªãŒã¹ãããããã€ãã®å®äŸ¡ãªã¹ããŒããã©ã³ãšã2å°ã®æ¥ç¶ãããWebã«ã¡ã©ãå«ãWindows10ã®ã³ã³ãã¥ãŒã¿ãŒãšã©ãããããããã¹ãããŸããã圌ãã¯ããŸããã£ããæ¥œãã¿ã®ããã«ãç§ã¯Orange Pi Oneã§LubuntuïŒãŸãã¯Kubuntuãããã«ã¯èŠããŠããŸããïŒã䜿çšããŠã¡ãŒã«ãŒã®æåã®ããŒãžã§ã³ããã¹ãããŸãããé©ããããšã«ããããªã®é床ãäœäžãããã£ããããŒãžãããã«éãããã«ãããããããããã¯æ©èœããŸããïŒã·ã¹ãã ã®ããŒããšãã©ãŠã¶ã®ãªãŒãã³ã«ã€ããŠã¯è©±ããããããŸããïŒã
ç§ãã¡ã®ãµãŒããŒã¯äžèšã®æ¹æ³ã§ããµãŒããŒãã¿ã€ãã©ã€ã¿ãŒã«ã€ã³ã¹ããŒã«ããããŠãŒã¶ãŒã¢ã«ãŠã³ããæ§æãããŸããåãŠãŒã¶ãŒã«ã¯ããã¹ã¯ãŒãã䜿çšããŠãã°ã€ã³ããå¿ èŠããããŸãã
ãã¹ãŠããã®ããã«æ©èœããŸãããŠãŒã¶ãŒã¯ãIPã¢ãã¬ã¹ãŸãã¯ãã¡ã€ã³åã䜿çšããŠãhttpsãããã³ã«ãä»ããŠãã©ãŠã¶ãŒã§ããµãŒããŒãã¿ã€ãã©ã€ã¿ãŒãå ¥åããŸããããã§ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããå ¥åããé£çµ¡å ã®ãªã¹ããå«ããã£ããããŒãžã«ç§»åããŸããé£çµ¡å ãã¯ãªãã¯ãããšããã€ã¢ãã°ãŠã£ã³ããŠãéããããã¹ãã¡ãã»ãŒãžã®å±¥æŽïŒã¡ãªã¿ã«ããµãŒããŒã¯RAMã«ã®ã¿ä¿åãããŸã ãã¡ã€ã«ã«ã¯ä¿åã§ããŸããïŒããã£ããã®ãã£ãŒã«ãããªãŒãã£ãªããã³ïŒãŸãã¯ïŒãããªãéžæããããã®ãã§ãã¯ããã¯ã¹ãä»ãããªãŒãã£ãªãããªé話ãã©ãŒã ã衚瀺ãããŸãããããªé話ãè¡ãã«ã¯ããŠãŒã¶ãŒã¯é©åãªãã§ãã¯ããã¯ã¹ããªã³ã«ããé話ãã¿ã³ãæŒããŠããã©ãŠã¶ãŒãžã®ã¢ã¯ã»ã¹èš±å¯ã確èªããŸããåŒã³åºããããµãã¹ã¯ã©ã€ããŒã¯åŒã³åºãé³ã®ããŒãé³ã鳎ããå§ããå¿çãã©ãŒã ãåããã©ã°ã§éããŸããåçãã¿ã³ãã¯ãªãã¯ãããšããã©ãŠã¶ã¯ãã«ãã¡ãã£ã¢ããã€ã¹ãžã®ã¢ã¯ã»ã¹èš±å¯ãæ±ããŸããæ¬¡ã«ãé話ãŠã£ã³ããŠãéããŸãã
ãããªäŒè°ããããªã³ã³ãµã«ãã£ã³ã°ãªã©ã®ãœãããŠã§ã¢ã®çµéšãè±å¯ã ãšã¯èšããŸããããããšãã°ãã³ã³ãã¥ãŒã¿ãŒã®Googleãã³ã°ã¢ãŠãã§ã¯ïŒã¢ãã€ã«ããã€ã¹ã®ããã«ãããããŸããïŒãææã®äººããã«ã¹ã¯ãªãŒã³ã§ãªã³ã«ããæ©äŒããããŸããã§ãããããã¯ãçè«çã«ã¯ã察話è ã«äœã衚瀺ããŠãããããã確èªããå¿ èŠãããå ŽåïŒããšãã°ãã¹ããŒããã©ã³ã®èé¢ã«ã¡ã©ããïŒããªã¢ãŒãã³ã³ãµã«ããŒã·ã§ã³ã§å¿ èŠã«ãªãå ŽåããããŸãããã®ãã£ããã§ã¯ãé話ãã€ã¢ãã°ã§ã察話è ãšãŠãŒã¶ãŒèªèº«ã®2ã€ã®ã¿ãããããªã§äœæããããšã«ããŸããããŠãŒã¶ãŒã¿ãã®çŸåšã®ããŒãžã§ã³ããããããªèªäœã«å ããŠãã«ã¡ã©ãšãã€ã¯ãéžæããããã®ãã£ãŒã«ãããããŸããäŒè©±äžã«ãã®å Žã§å€ã倿Žã§ããŸããããããããã¯èª°ãã«åœ¹ç«ã€ã§ãããã
ããã§ãéçºã§æºããããã³ãŒã³ã«ã€ããŠç°¡åã«èª¬æããŸããå€åããã¯åœŒãã®ãœãªã¥ãŒã·ã§ã³ãéçºããŠãããã°ããŠããé誰ããå©ããã§ãããã
WebRTCã®äœæ¥ãšå®è£ ã®ææ°æ©èœãããã³äžè¬çã«JavaScriptã§ãã«ãã¡ãã£ã¢ãæäœãã
ããã§ãç°¡åã«; 詳现ã¯ãjavascriptãã¡ã€ã«static / js /videoChat.jsã®ã³ã¡ã³ãã«èšèŒãããŠããŸãã
- 確ãã«Chromeã«å ããŠãããããä»ã®ãã©ãŠã¶ã§ããHTTPSçµç±ã§ã¢ã¯ã»ã¹å¯èœãªãµã€ãã§ã®ã¿getUserMediaãæäœã§ããŸãã
- ãªãŒãã£ãªããã³ãããªå ¥åããã€ã¹ã®ãªã¹ãã¯ãgetUserMediaãžã®åŒã³åºããæåããåŸã«ã®ã¿ååŸã§ããŸãã
- JavaScriptã«ããïŒhtmlãããªãŸãã¯ãªãŒãã£ãªèŠçŽ ã®playïŒïŒã¡ãœãããä»ããïŒãµãŠã³ãã®èªååçã®éå§ã¯ããŠãŒã¶ãŒããµã€ãã§ã¢ã¯ãã£ããã£ã衚瀺ããåŸïŒããšãã°ãã³ã³ãããŒã«ãã¯ãªãã¯ããåŸïŒã«ã®ã¿å¯èœã§ãã
- promise setLocalDescription , offer. RTCPeerConnection ICE-, .
- « » getUserMedia RTCPeerConnection. , , .
- ã¢ãã€ã«ããã€ã¹ã®å€ãã®èª¬æã§ã¯ãfrontingModeããããã£ãåç §ããŠãããã³ãã«ã¡ã©ãŸãã¯ãªã¢ã«ã¡ã©ãéžæããŠããŸããå®éãå€ãããã€ã¹ã§ã®æ¹æ³ã¯ããããŸãããããã¹ãæžã¿ã®ã¹ããŒããã©ã³ã§ã®ãã®ãã£ããã§ã¯ããã®ããããã£ã䜿çšããªããŠãåãæ¿ããæ©èœããŸãããã ãã第5é ãå³å¯ã«èæ ®ããŸãã
ãªã¹ãã¯ããããç¶²çŸ çã§ã¯ãããŸãããä»åŸã®çºå±ã®éçšã§ãããã«å€ãã®ããšãæµ®ãã³äžãããšæããŸãã誰ããå¶éãåé¿ããæ¹æ³ãç¥ã£ãŠããŠãããã«å¿ããŠããã°ã©ã ãåçŽåããããããã䜿ã£ãŠäœæ¥ããå Žåã¯ãã³ã¡ã³ãã«æžã蟌ãã§ãã ããã
Lazarusãããã¯ãŒã¯ã¢ããªã±ãŒã·ã§ã³éçºè ã®å€§ç©
Synapseã¯çŸåšãOpenSSL1.0.xã©ã€ãã©ãªã®ã¿ããµããŒãããŠããŸãã1.1ã§ã¯ãå€ãã®ãã®ããã§ã«ç°ãªã£ãŠå®è£ ãããŠãããä»ã®ãã®ã¯ã©ã€ãã©ãªåã§ãããããŸããããã«ãdllãããã°ã©ã ãã©ã«ãã«é 眮ããã ãã§ã¯äžååã§ãããŸããæ§æãã¡ã€ã«ïŒopenssl.cnfïŒãå¿ èŠã§ãããã®ãã¡ã€ã«ãžã®ãã¹ã¯ãOPENSSL_CONFç°å¢å€æ°ãä»ããŠèšå®ãããŸãã
ã©ãã§ããŠã³ããŒãã§ããŸãã
Win32ããã³Win64ã®ããã°ã©ã ã®é åžãšãLazarusã®ãµãŒããŒåŽã®ãœãŒã¹ã³ãŒãã¯ããªã³ã¯www.lubezniy.ru/soft/videochatã®ããã°ã©ã ããŒãžã§å ¥æã§ããŸã
ãPSïŒã¡ãªã¿ã«ãLazarusã䜿çšããŠåããœãŒã¹ããã®ãã«ããèªååããæ¹æ³ãç¥ã£ãŠãã人ã¯ããŸããã 2ã€ã®ç°ãªãexe-Win32ãšWin64ã®å ŽåïŒWin64ããWin32ãžã®ã¯ãã¹ã³ã³ãã€ã©ã¯çšŒåããŠããŸããããããžã§ã¯ãã®ãªãã·ã§ã³ãæ¯å倿Žããããšã¯æ£ãããããŸããã
PPSïŒèª°ã詊ããã®ããã³ã¡ã³ãã§ææ³ãå ±æããŠãã ããã