- From: Yuan Chao <yuanchao@gmail.com>
- Date: Sat, 16 Jul 2011 22:58:44 +0200
- To: pingooo <ping.nsr.yeh@gmail.com>
- Cc: "Kang-Hao (Kenny) Lu" <kennyluck@w3.org>, ¤¤¤åHTML5¦P¼Ö·|ML <public-html-ig-zh@w3.org>, ©P¸Îªi <itchina110@gmail.com>
2011/7/16 pingooo <ping.nsr.yeh@gmail.com>: > ¥u¦^À³¤@ÓÂI¡G >> ¡uWeb Real-Time Communication¡v½¦¨¡uWeb/¤¬Ápºô¹ê®É³q°T¡v¥i¥H¶Ü¡H ¡u¤¬Ápºô¡vÀ³¸Ó¬O internet ÁÙ¬O world wide web ªºÂ½Ä¶¡H > ¡u¤¬Ápºô¡v¤TÓ¦r¬O¦h¥X¨Óªº¡H^¤å¸Ì¨S¦³ "Internet" ³oÓ¦r¡C > Real-time ¤@¦V¬OĶ¦¨¡u§Y®É¡v¡A³o¦b real-time OS, real-time system ¸Ì¥Î«Ü¤[¤F¡C¡u¹ê®É¡v¬Ý¤£À´¡C > ©Ò¥Hª½Ä¶¦¨¡uWeb §Y®É³q°T¡v´N¦n¤F§a¡I ¥¿¦p pingooo ©Ò¨¥¡A¦L¶H¤¤¥xÆW¹ï real-time linux/system ªºÂ½Ä¶´N¬O §Y®É linux/¨t²Î¡C ©Ò¥HÓ¤Hı±o´NĶ¦¨¡u§Y®É¡v¨ä¹ê¬O OK ªº¡C ¡u¹ê®É¡v¬O»´äÁÙ¬O¤j³°ªºÂ½Ä¶¡H(¦L¶H¤¤»´ä¬Y¤½¥qªº¦WºÙ) ¤£¹L instant ½¦¨¡u§Y®É¡v¨ä¹êÀ³¸Ó¤£ºâ¬OÁc¤¤ªºÂ½Ä¶¡H ²¦³º§Ų́S¦³¡u§Y®ÉÄÑ¡v (instant noodles) ³oÓ¦WºÙ¡C ¥u¬O Y! ¡u§Y®É³q¡]Instant Messenger¡^¡v³o¼Ë¤l¨ú¤¤¤å¦WºÙ¡A ¤]´N³o¼Ë¤lªu¥Î¤F¡H > Kang-Hao (Kenny) Lu <kennyluck@w3.org> ©ó 2011¦~7¤ë16¤é¤U¤È1:35 ¼g¹D¡G >> >> ¤§«e¸Îªi¦b°Ý§Ú HTML5 ¦³¨S¦³¯A¤Î¬y´CÅ骺³¡¥÷¡A¨ä¹ê WHATWG ªº HTML5 ¸Ì±¦³ >> ÂI¹ïÂI¶Ç¿é¡]PeerConnection¡^¤w¸g«Ü¤[¤F¡Aè¦n´X¤Ñ«e Mozilla »P Cisco ¦X§@ >> ±À¥X¤F¤@¥÷·sªº API¡A¦b³o¸Ìµy·L¾ã²z¤@¤U¦UºØ¶i®i¡C½Ð°Ñ¦Ò¡G >> >> http://www.w3.org/html/ig/zh/wiki/WebRTC >> >> ¦³³W½dµ¥µ¥ªº³sµ²¡C >> >> ¥Ø«e¦³¨â¥÷ API ªº´£®×¡A°ò¥»¤W®t¶Z¤ñ°_¤§«e´£¨ì Google ¸ò Mozilla ªº¨âÓ >> Audio API ªº®t¶Z[1]¤ñ°_¨Ó¥i¥H»¡¤£¬O«Ü¤j¡A´X¶µ¤ñ¸û¤jªº®t²§¥]¬A¡G >> >> * ·í±q»·ºÝ¡]PeerConnection¡^©Î¬O±q¦Û¤vªºÄá¼v¾÷¡]getUserMedia¡^¨ú±o¤@Ó >> stream ¤§«á¡A¥Î <video> Åã¥Üªº¤è¦¡¡C >> >> Google ª©¡G >> video.src = window.URL.getObjectURL(stream); >> >> Mozilla/Cisco ª©¡G >> video.stream = stream; >> >> §ÚÓ¤H¬O¤ä«ù Moziila/Cisco ª©ªº¡A¦]¬°¤ñ¸û¦nÀ´¦Ó¥B¦Ñ¹ê»¡ window.URL ¬Ý°_ >> ¨Ó¯uªº¤£¤Ó¶¶²´¡C¥t¤@¤èªºÁ¿ªk¬O³o«½Æ¤F File API ªº¼Ò¦¡ >> ¡]window.URL.getObjectURL¡^¤£»Ýn·sÄݩʩάO©w¸q¦P®É¦³ src ¸ò stream ±¡§Î >> ³B²z¤è¦¡ªº¥²n¡C >> >> ¥t¥~¡AMozilla/Cisco ª©ªº stream ÄÝ©ÊÁÙ¥i¥H¥Î¨Ó¨ú±o <video> ¡B<audio> ¸ò >> <canvas>¡]¡I¡^ªº¦ê¬y¡A<canvas> + PeerConnection ´N¥i¥H°µ¨S¦³¦øªA¾¹ºÝªº¦h >> ¤H¹CÀ¸¤F¡A¤Q¤À¥O¤H¿³¾Ä¡C½Ð°Ñ¦Ò Mozilla/Cisco ª©³W½d¨Ò¤l¡uSimulcast >> Video¡vªºµ{¦¡½X¡C >> >> Google ª©ªº³W½d¦n¹³¨S¦³±q¤¸¯ÀŪ¥X stream ªº¤èªk¡]¦³¿ù½Ð§ó¥¿¡^¡A§Ú·Q¥i¯à >> ¬O¸Ó½s¿è¡]Hixie¡^§Æ±æ¥ý§â³Ì°ò¥»ªº¨Ï¥Î®×¨Ò--µø°T·|ij--·déw¡A¨º¥÷³W½d¤]¤ñ >> Moziila/Cisco ª©ªº¸Ô²Ó«Ü¦h¡C >> >> * ¦h¤H PeerConnection ªº³s½u¤è¦¡ >> >> Moziila/Cisco ªº PeerConnection ªº API ¬O¥ÎÃþ¦ü Socket ªº open() >> listen() accept() ¼Ò¦¡¡A¥i¥H accept() «Ü¦h¨Ï¥ÎªÌ¤@¦¸¼s¼½¡CGoogle ª©ªº«h >> ¬O¤@Ó PeerConnection ´N¬O¤@¹ï¤@¡A¤]´N¬On«Ø¥ß¤@¹ï¦h³s½u´N»Ýn«Ø¥ß¦hÓ >> PeerConnection¡AHixie ªº¸ÑÄÀ¬O WebRTC ¨ó©w¥Îªº ICE ¤£¤ä´©¤@¹ï¦h¡A¥t¥~´N >> ¬O¥Lªº³]p¸Ì±þÃä¬O¶}±Ò³s½u¤è¡AþÃä¬O±µ¨ü³s½u¤è¬O¦Û°Ê§P©wªº¡C¡]¦ý¬O¥Ø«e >> Á٬ݤ£À´¡A¼x¨D¹ï ICE¡BTURN¡BSTUN¡BSDP ³o¨ÇªF¦è¼ôªºªB¤Í̸Ѵb¤@¤U¡ã¡ã¡^ >> >> * ¨ä¥LÁÙ¦³¹³¬O¤@¨Ç¤p®t²§¹³¬O»yªk¤£¦P >> >> Google: new PeerConection("audio, video") ¸ò >> Mozilla/Cisco: new PeerConnection({audio: {}, video: {}}) >> >> µ¥µ¥¡A§¹¾ã§âªº½Ð°Ñ¦Ò[2]ªº°Q½×¡C >> >> ³o¸Ì¦³´X¥ó¨Æ±¡¬O¤¤¤å¿³½ì¤p²Õ¥i¥H°µªº¡G >> >> * ½T©w¤@¤U½Ķ >> >> ¡uWeb Real-Time Communication¡v½¦¨¡uWeb/¤¬Ápºô¹ê®É³q°T¡v¥i¥H¶Ü¡H >> >> ¥xÆW³oÃä¦n¹³¤£¤Ó±`Å¥¨ì¡u¹ê®É¡v³oÓ¦r²´¡A¤£¹L½¦¨¡u§Y®É¡v¦n¹³¬O¡u§Y®É³q >> ¡]Instant Messenger¡^¡vªº instant ¤£¤Ó¹ï¡C >> >> * ¤j®a¥i¥H¤@°_¨Ó½Ķ¦b IETF ªº WebRTC ¨Ï¥Î®×¨Ò¤åÀÉ >> >> ³o¥÷¤å¥ó´£¨ì¤F¤@¨Ç¨Ï¥Î WebRTC ªº¨ó©w¸ò API ªº±¡¸`¡A½Ķ³o¥÷¤å¥ó¦³§U©ó¤F >> ¸Ñ¥¼¨Ó³oÓ API ªº¼ç¤O¡A¨Ã¥B¥i¥H¬Ý¬Ý³o¨Ç±¡¸`¦b¤¤¤å¥@¬É¬O¤£¬O¤£¾A¥Î¡C§Ú¤w >> ¸g¶}¤F¤@Ó½Ķªº¦a½L¡A¤´µM¦b§Ú̪º wiki[3] ¤W¡A¤åÀɪºµ²ºc°ò¥»¤W¸ò HTML5 >> «ÜÃþ¦ü¡A´N¬OÁà¤F¤@ÂI :p ¸Îªi¡A§A»¡n§ä¤H½Ķ¬y´CÅé¬ÛÃöªº¨º´N¨Ó½³oÓ§a¡I >> >> * À°¦£¤¬¬Û¸Ñ´b¤@¤U¡A¤U±´£¤@¨Ç§Úªº°ÝÃD¡C¤]Åwªï¦h´£¤@¨Ç§ó³oӳ̷s¼Ð·Ç¬ÛÃö >> ªº°ÝÃD¡C >> >> [1] http://lists.w3.org/Archives/Public/public-html-ig-zh/2011Apr/0064 >> [2] http://lists.w3.org/Archives/Public/public-webrtc/2011Jul/0012 >> [3] >> >> http://www.w3.org/html/ig/zh/wiki/Draft-ietf-rtcweb-use-cases-and-requirements >> >> == WebRTC °ÝÃD == >> >> * PeerConnection.send() ªº§@¥Î¬O¡H©Ò¿×ªº out-of-band signaling ¬O¤°»ò¡H >> >> ¡]³o¥i¯à¬O«Ü°ò¥»ªº°ÝÃD¡A¤£¹L¦pªG¦³¤H¯à¬°§Ú¸Ñ´b«h·P¿E¤£ºÉ¡^ >> >> * ³oÓ API ¥i¥H®³¨Ó°µÂI¹ïÂI IM ¶Ü¡H >> >> ·Pı¦n¹³¥i¥H¡AÁöµM PeerConnection.send() ¬O UDP À³¸Ó¤£¯à°µ IM¡A¤£¹L¦pªG >> ¥Î STUNS ªº¸Ü¦n¹³¬O TLS-over-TCP ©Ò¥H¸ê®Æ¤£·|º|¡H >> >> ¥t¤@ºØ¥i¯à©Ê¡A¦³¤H´£Ä³ PeerConnection ¸Ì±ªº°Ñ¼Æ³Ì²×·|Åܦ¨¤@Ó TURN ªº >> URL¡A¹³¬O¡Gnew Connection("turn:xxx.xxx.xx...")¡A¨º¥H«á¬O¤£¬O¥H«á¦³¥i¯à >> ¥i¥Hª½±µ new WebSocket("turn:xxx.xxx.xx..")¡H >> >> * MediaStreamRecorder.getRecordedData ·|±o¨ìªº¬O¸Óª«¥ó±q¥X¥Í¨ì©I¥s³oÓ¤è >> ªk¬°¤îªº¦ê¬y¸ê®Æ¡C§Ú¨S¬Ý¨ì¾P·´¤@Ó MediaStreamRecorder ªº¤èªk¡A¨º¤£¬O¥N >> ªíÂsÄý¾¹n¤@ª½°O¿ý³oÓ¦ê¬y¡H³o¯uªº¦³¿ìªk¹ê§@¶Ü¡H >> >> * ¦pªG§Ú¨S·d¿ùªº¸Ü¡AGoogle ª© 2.5 ¸`[4]¤§«eªº¨Ò >> ¤l¡Alocal.signalingChannel À³¸Ó¬O local.processSignalingChannel ¤~¹ï >> >> [4] >> >> http://www.whatwg.org/specs/web-apps/current-work/webrtc.html#the-data-stream >> >> == ¨ä¥L°Q½×°Ï == >> >> * W3C WebRTC ¤u§@²Õ¶l¥ó¸s[5] >> * IETF rtcweb ¤u§@²Õ¶l¥ó¸s[6] >> * WHATWG ªº¶l¥ó¸s[7]°Q½×¹L«Ü¦h¦¸[8] >> >> [5] http://lists.w3.org/Archives/Public/public-webrtc/ >> [6] http://www.ietf.org/mail-archive/web/rtcweb/current/maillist.html ÂI >> "rtcweb List Information" §Y¥iq¾\ >> [7] http://lists.whatwg.org/pipermail/whatwg-whatwg.org/ >> [8] >> >> http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-March/thread.html#30873 >> >> >> http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-March/thread.html#30941 >> ª½±µ¦b [7] ªº·j´M±ø·j¯Á "peer" ¥i¥H±o¨ì¦h¦~ªºµ²ªG >> >> >> ¦¹P >> >> §f ±d»¨¡]Kenny¡^, ¤¤¤å¿³½ì¤p²ÕW3C³sµ¸¤H >> ±À¯S: http://twitter.com/kanghaolu >> Google+: https://plus.google.com/112088462407783855918/posts >> ·s®ö·L³Õ: http://t.sina.com.cn/1950042164 >> > > -- Best regards, Yuan Chao
Received on Saturday, 16 July 2011 20:59:32 UTC