webrtc

2014������10·���05������

Web���«������Layer3 (IP layer) �����ҏ�������돫��¹������»��Џ��������̏��������������«������

\���\���\¹\���\���\���\��\���\���\���\�����������������Ï����������؏����ҏ�����������¼��쏢�������·���������¹��¡�Web\��\��\���½��Џ��������������­��������¡񏪣�����ď��\���\���\���������»��������������Ώ���������̏��«������������������������������\���\¹\���\���\¹���­������¹���������\µ���¼\���\¹�����������Ѣ�����������­���������������«��������¡����������������я�����NW\���\���\������������������������������쏢�³�����Ï����������������������Ï�����������¡�OSI»²¾��������������������Ï�������¡�layer5 �����������ӏ�����HTTP/1.1 => SPDY, HTTP2�������돪�¹��ԏ��·���������������ޏ�������¡��½������²¼������Layer4 ( TCP )�������������­���������������������������쏢�«������������������µ��؏�����²������������������������������«�������������������������³���������؏�����¾��䏢돪㏢������¡�µ����������������� HTML5 Conference 2013������¹��ӡޏ�����·�����ď����������������� ����SPDY������QUIC���о�������������·�����¡�Web������ď��²½����\��\���\���\³\��������ҏ����Џ�𡯏���������������������¡�HTML5 Conference 2013��¡� ��������¡�publickey ������\���\����¼\���µ­»��ӏ�����¾���²��Ï����������ď��������������������������������¹�������������«��¡�

���³�����Ï����������������ď�����·������«��������¡񏪣¹���������³�����������̏����Џ��µ���������������������������«������������SCTP����³��������Џ��µ�����������ď�������¡�SCTP������²��Џ���ޏ������¾���������̏����������������·������QUIC����½Ð���������­�����ď�������������¡�Web����\���\���\�̏��¼������������������������ Layer4 ������ tcp alternative ���������������½Ð���������­���������������������¹��¡�

���½�����я�������������¡����������я��������������¼������ WebRTC ���̏����������Ώ����� Chromium ������\½���¼\¹\³���¼\������«�����������ď��������ӏ���������¡�JS���«������Layer3������������������������\���\��\·\���\��я��̏����������쏢¡ߏ����ҏ��������«���·�����ď�����������¡��򏩡��䏢�������½��������������������������������¡�\���\���\¹\���\���\���\��\���\���\���\����\«\Ð���¼���·���������ޏ��������Ð���������������������������¡돫�������¹¹������¹­���̏��������½�����Ï��������¹��¡�¡�¡�

�������������������������������������¹���������«������������������������������¡�WebRTC������\���\��\·\���\��я����ď�����

��������������������¡񏪢���½µ�����Ï�����������²���¼��ҏ�����\���\���\Ð���¼����¼�����돪����¹������ WebRTC Meetup Tokyo #4 ��������¡񏪳�������LT���·�����ď��ӏ������������������������������������¹���������«���������·������������������Constraints�����ď�������¡ߏ������������������¹��¡�

googImprovedWifiBwe

���³������LT������¾���²��Ï��·�����ď�����������¡�RTCPeerConnection()������P2P������³«»������¹���������������­�����������Ώ��������������­������������������������������������������������������������Chrome������¼«\���\��\·\���\��я�¡�����𡯏��Ð��¡�WebRTC \���\���\���\���\���\���\��������� reference demo https://apprtc.appspot.com/��������������¡�


optional: [{"googImprovedWifiBwe":true}]
���̏����Џ��������������������������¹��¡��³��������������¡�NW�����ѡ돫���ď��������\��\���\��\���\���\���������²��Џ���ޏ��µ�����������ď������������������¹������\���\��\·\���\��я��������������Ï��������¹����Bwe��������¡񏪤��ď����BandWidth Estimation������¢̏�����������»�ߏ����Ï�����¡򏪣�����ď�����¼�������������¾������̡���䏪���ԏ��µ������������������������¡񏪪������������������쏢�������������������������������������·���½�����Ï�¡����ď�������¡񏢱½��돩Ώ�����Chromium������\½���¼\¹\³���¼\������«��������������¡��³������\���\��\·\���\��я�����8·����돢����������������\���\���\������«������������������������������������������������������������¡񏪤��ď���̏��³������\��\���\��\���\���\�������\���\���\���\���\��������������������������ď������«���������폢������¡��½���������Ï�������¡�stable�����������������ġޏ�����µ�����������������я��������·�����������Ï�������¡�

googIPv6 & googDscp

����������¡��½�������돪�³�돢����µ���������������������������\���\��\·\���\��я��̏��³��������������Ï�������¡�Chrome������¼«\���\��\·\���\��я��������¹������¡�


mandatory: { "googIPv6": true, "googDscp": true }
�����¼��ԏ�������¡�P2P��������ď�����IPv6����»�����𡯏����������������Ï��������¹�������������������������·��¡񏢱���¼��ԏ����� Diffserv ������\���\���\�돢����\���\��я��������¹�������������������������¹��������Џ��������쏢������������¡�IPv4�����������������Ð IP\���\���\���������TOS\���\���¼\���\�����������¡�IPv6������¾���¹���������Class\���\���¼\���\���������\���\���\�������\»\���\������µ���������������¹��¡�IPv6������������¾��⏢�·�����ď�����0x88������\���\���\������̏��폢�������������·�����ď�����¡򏢱µNW²�돢�µ�����я��������·��������������¡��½���³\���\���¡�

���³����������������»�����𡯏��������������ӏ��������������쏢�폢¡������������؏��������¹���̏�¡񏢱½¾��؏����������������������������쏢���������������������������������»�����я�¡�����𡯏��Ð googIPv6 ��������������������������������¡�\���\���\���\���������IPv6 \���\��\·\���\��я����� enable ���������·�����ď����������쏢�·��������������¡�ISP������·Ð���³���¹���������³���������µ������\���\���\���\��������ӏ�������¡�shortest path������WebRTC P2P��������ď��������­���������������«����IPv6\���\��\·\���\���ON���������·�����������������Ï��������ޏ��������������¾�����䏪������ď����ҏ����������я��������������������·�����������������Ï�����������¡�\»\­\���\���\���\��\���\¹\������̏��������������������¾µ���������쏢�­²¼���µ��������¡�돫�������������\³\���\·\������¼\������¼\µ���¼\���\¹���������³�����������ҏ���돪���я��������¹�������������������½¼��������쏢�������������µ���������«������������¡����������ď�¡�googDscp ��������������������������������¡��³������������TOS/Class\���\���¼\���\���������\���\���\�돢���ҏ��폢���������������쏢������������¡�\������¼\��ď��¼���������\�����������폢�������·�������������������������������������������������������������я����Ώ���������̏���ߏ�����¡�\���\���\��쏪��������������������¼���������¾���������·��ҏ��̏��������������¹��¡�\���\���\���\���\���\���\���������������WebRTC���������������������­��������������¡񏪪������������������쏢�������������������¹���������«����������Internet½Ð������¹��ԏ�����»��Џ�������¡񏪣���¾������³������\���\���\��������������я�����������\���\���\���µ������������������������¡�³��������Џ������돪�������\���\���\���\���������������������������������»�ߏ��������������¹������¡�

������������������¡�������������¼���������\�ޏ��¼\¹���������������������¹���������«���������폢���������������Ï����Ώ��������������������ޏ��������¹���̏�¡�\��\���\��ď��¼\��\���\���\��돢���Џ��ޏ�����\·\¹\���\���¹½�����叢�������«��������������¡��³���������������������������������쏢�������������������¹���������«��������¡�\��\���\��\��������Џ��ޏ�����WebRTC���̏�����³��������쏢���������̏����Џ��µ�����������������������Ï����������������������������������������Ï��·���Ð���������������«���«���������������·�����������Ï��̏�¡񏩡��������ԏ�����¾��⏢�������«�����������������«������»����·�����������쏢����������³��⏢�·���������«���������·���������������»�����я���IPv6����¹­������»��������������������������������Ï��������������������³��������������������������������¡񏪤��ď���� googIPv6 ������\���\��\·\���\���¼«��������\���\���\���\���\������������������������������·�����������Ï��ޏ���������

\���\���\¹\���\���\���\��\���\���\���\������������\������¼\��돢����¹¹������¹������������������«������

�����������ҏ��������������¼������»�ߏ����������ď�����������¡��³������������������\���\��\·\���\��я����������� Layer3 �����ҏ�������돫��¹�����������������������������я��������¹��������������¡򏩡�����������¡�googDscp �����������я�������¡�JS���«������IP\���\���\����������\�����������폢����������\³\���\���\������¼\������¹����������������������������������¡�Web���«������Layer3������\³\���\���\������¼\������·���������������������³���������������¾���������������������»�����я�¡����������������������я�¡��³������\���\��\·\���\��я����ҏ��­������²½���¹�����������ď�������������������¡�JS�����Ï��«���������������ޏ�����������\���\�����������¡�\������¼\��ď��¼�����Ï�����\³\���\���\��\�돢��������̏���ߏ�¡�������������¡��½�����Ï�����������������¹�����𡯏�������������¡�\·\¹\���\�����돫��������������­������Web²�돢�µ�����я�����NW²�돢�µ�����я��̏����폢���������·������·���������­�����������������������������������������������䏢�̏�¡��½���³�������������������������������������������«����������������������������������¹�����𡯏��������·���������������������·�����ď�¡�

���½�����я����������폢���������·������̏���̏���ߏ����������������������ď��������­��¡�½��������؏��µ�������������������������Ð����������\���\���\���\���\������¼������½����������·������\��\���\���\���\�����������я��������·�����������Ï�������¡�¡�¡򡭏�����\������������������������


��ď��µ���\���\���\��\���\���\­\���\�돢����
kotesaki at 20:25����Permalink����Comments(2)����TrackBack(0)����clip!

2012������04·���25������

WebRTC»���»���������

���򏩡��䏢����\���\¹\���������WebRTC��������������������������¡�Web������\���\��\���\���\���\�����������ď��\µ���¼\���\¹������¼������½���¹�����������ď�����������API���������¹��¡�\���\���\���\����������¡�plug-in������»��������������돢����\���\���\��я�����������\µ���¼\���\¹�����ҏ�돫��������³����������½Ð�����������������������Ï��������������������������¹��¡�

WebRTC���������������������¼����������

WebRTC������\��\���\���\��\���\���\��⏢�¼\�����������������̏�������¡�WebRTC�����ҡ돪�²¼���������������Ï�����������µ������·���������������������¹��¡�

WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs. The WebRTC components have been optimized to best serve this purpose.
\���\��ď����������؏��¹����������������WebRTC������\��쏢�¼\��\��я�����\��\���\���\��\���\������������¹��¡򡭏������ޏ����������ď�ԏ����� Javascript API �����ҏ����Џ��������������³��������������¡�Web\���\���\���\��������\���\��\���\���\���\�����������ď�����²������½���������¹�������������������������¹��¡�WebRTC ������³���\³\���\����¼\���\���\�����������¡��³���������䏪���쏢�������Ð���·\���\¹\��������������������������������Ï�돪������²½���µ���������������������������¹��¡�������������������������¡�Google, Mozilla, Opera������������������\µ\����¼\������µ������������������������\��\���\���\��\���\�����������¡��³������\��⏢�¼\���¼«���������� Google Chrome \������¼\����������������������ޏ�ď����Џ��µ���������������������������¹��¡򏪱���½���²½������������������������������ WebSocket ����������ޏ�������¡�JS������API������W3C, ��������ď��\��\���\���\³\��������ԏ���̏����� IETF ����������̏�������·�������������������µ���������������������������¹��¡�(¾���������\��\���\���\��\���\���\��⏢�¼\�����������¡��½���������¾������������\���\���\���\���������������\���\���\������������������������������������������������¹)

¾���������½��ҏ����㏢���ď����������Ï�������¡�WebRTC����������ޡ돫�������API��������������������������¡�¼��������������я�����������API���«������¹½������µ���������������������������¹��¡�

Stream API
�ޏ�������䏢����²»���¼������������������\¹\���\������¼\���\������¼\��ď����ҡ�·������API���������¹��¡�\«\���\������«������������\���\���\��ӡޏ�������䏢�������������Ï�������¡�»��Џ��¹¹������¹�����������Џ��������������³���ޏ�����\������¼\��ď����돫�����������������������������������������\���\���\���\�������������������������������������¼�����������·�����Ï��³���������̏��������­�����������������Ï��������������������������¹��¡�����𡯏��Ð��¡�getUserMedia() ������»��������Ï�������¡�\«\���\���������\���\���\������«�������ޏ�������䏢����²»���¼������\¹\���\������¼\���\������¼\��ď����ҏ�������돫��������­�����������������Ï��������������������������¹��¡�
Peer-to-peer connections
\���\���\���\�����¼\���\���\���\������ӏ�����UDP�����ҏ����Џ�����\���\���\���\���\���������\������¼\��ď����ҏ����¼��؏�ď��¹�����������ď�����������API���������¹��¡�HTTP������WebSocket��������������¡񏪱�̏�����\µ���¼\Ð���¼������²��Ï��·������\���\���\���\�������������Ï��·�����ҏ����䏪�³���·���������¹���̏�¡��³������API������������\������¼\��ď����ҏ����¼��؏�ď��¹���������������­������\µ���¼\Ð���¼������²��Ï��·���������»�����я���������½��ҏ�����\·\��\���\���\���\�돪���Џ�����������������\µ���¼\Ð���¼����������̏���ߏ��������¹���̏�����¡�Stream API������¼������������·������\¹\���\������¼\���\������¼\��ď����ҏ����Ώ�����������\���\���\���\������ӏ�����\���\���\���\���\��������������¼��؏�ď��·���������¹��¡�
·��⏢������������������������������������¡�Steram API ��������¡�\«\���\���������\���\���\��������������䏪�³���·��¡�ޏ�������䏢��²»���¼\¹\���\������¼\���������Peer-to-peer connections������»��������������������Ώ�����������\���\���\���\���������������������¡��½�����Ï��¹��������������¡�\���\���\��я��������������̏�돫�������������������������ӏ�����������������������¡�

²��ď�������������������������\���\���

������������¾���²��Ï��·������\��\���\���\��\���\���\��⏢�¼\�����������¡�\���\���\��я�����������������\µ\���\��\���\���\������̏�����³«���µ���������������������������¹��¡�Chrome������dev\���\���\���\��� or canary���������³������\���\���������»����»���������¹����chrome://flags������ ����Media Stream�����ҏ��­�����⏢�������¹��������¡����������ҏ����돢���������돢����������¡�https://apprtc.appspot.com/������\��\���\»\¹���¹��������������¡�²���������������²¼�����ԏ�����\���\���\��я�����������\������¼\��������Џ�����URL���̏��½¼�����µ���������������¹��¡��³������URL�����ҏ�����������\���\���\���\��������³«���­��¡��·���Ð�����������������ԏ�����������\���\���\��я���������������»������������������������¹��¡������ď��������·��¡�\���\���\���\������¼\����������­����������������������������������돢�«������������(������½���)���³���������̏����������������¹������������¡��½������»��Џ���������ޡ돫�\���\·\��я��������������ӏ����叢���叢���폢�¼��¡ߏ����������叢�������½¾Ð�����я�����²����������·���������������������µ��������¡�

rtc_screenshot

WebSocket�����������¡돫�����������������

���µ��������¡��³������WebRTC�����������������������������²�����ď����������Ï���������Web������\���\��\���\���\���\�����������ď�����²������½���������¹��������¡�API���������¹��¡�¡�¡��������¹��������������¡�돫�������µ��ď��������̏�¡��½������������ WebSocket �����������¡돫����������������¹��¡�WebSocket ����½Ð���������­�����ď��³��������������¡񏪡Ð�����򏢱��Џ�������ď���½Ð�����������������������Ï���������������������������\���\��\���\���\���\���Web��¡������������я����������������؏���\���\���\������¼���������������������������·�����ď�¡��½�����Ï�¡�����Web������\���\��\���\���\���\�����������ď�����²������½���������¹��������¡�����������WebSocket���̡���叢����¼������½���·�����������������������������돢�������¹��¡��������������¹��������������¡�WebRTC������������²��ď������������폢���������я���������̏���ߏ������������폢����������������µ��ď��������̏��������������������������������������ޏ��������¹��¡�

�����¼��؏�ď��¹������\������¼\��ď������������­������������������������»�������������̏��ޏ�������������µ���

��¡�¡�¡�������¡񏪩��⏢𡯏�����½��Џ����������������Ώ��������·�����ď�¡����������������������я��«�����Џ��·���������������¹��������¡��­�����������я�����²��ҏ��������·���������·�����������Ï�¡�\������¼\��ď��������������������­�����������я�����������\���\���\�ߏ��̏����������������¹��¡�돫����������������돪������­���̏����µ������µ������������\������¼\���������𡯏��Ð\���\­\¹\���\������¼\��ď����������я��«����³��돪���ӏ��·���������¹��¡�

������𡯏��Ð��¡�\���\���\���\������������ӏ��������������¼��¡ߏ�����������������\���\���\»���¼\��������ҏ���������������ď��������·��������¡��³���������̡돫�������»��⏢�����������������ď��µ���������������������·���������¹��¡����ӏ�������¡ߏ��ӏ�������¡ߏ��ӏ��¼��¡��������������돫�������»��⏢������������¡��³���³��������¡�����𡯏��Ð���ӏ�������¡�������������������\������¼\��ď���\���\���\��ď��¼\���\���\����������������³���«���������µ������������������������������������������¾���¹���������¹�����𡯏����������Ώ��������·�����������Ï�¡��µ�����������������������ď�������������������·���������������������·�����������Ï�������¡񏪡���¼���������������
���������¼ ���������������½¼�����µ���������������·���������������������¹��¡��ӏ�����¾�������ߏ��«���폪��������¹��Џ����я������������������폢¡ߏ��������«��������������������ġ������叢���ҏ��«���ޏ��������������������������¹��������¡򏪤��������Џ��������¹��¡�
������������������¡��³�����Ï�����������\������¼\��ď�����������������������\������¼\��ď��̏��µ������������������������¾���¹�����������¡��½������\������¼\��ď�������돩���������¹�����������������������Ï��³�����������ҏ��·���������¹��¡��½���������������������������������돪������­�����ҏ�����¾������¹���������������ޏ��������¹��¡��½�����Ï��¹���������Ð��¡񏪡���¼��������������� ���������������¼ ���������������­�����������я��������½¼�����µ���������������¹��������������¡�돪���ġ����������¹��¡�

�����������á돫��������������������������̏����㏪���ԡ��돪���������������������������\������¼\������������¹��¡�ޏ�������䏢���������я��«���̏��µ·��ď����쏢�������¹��¡�
�����ԏ��µ³�����������������¾µ�������������������������������������������Ï�������¡�ޏ�������䏢���������������Ï���������1����������ӏ�����30\³\���������²��������䏢�̏�������������������������­��������¡��½�����������ҏ����Џ����������Џ�����������²������������«�����������������������������������á���������������\µ���¼\���\¹���̏����Ѣ�����µ���������������������������¹��¡��³���³������������𡯏��Ð��¡񏪢��������̏������ӏ�������¡ߏ��������������Ï�����²��������䏢�̡돫�\³\������������������ď��������·���������¹��¡��½�����Ï��¹��������������¡�¼��؏���¼��������Ï�����������²��ď��̏����쏢�­���������������·�����������Ï��폪���⏢𡯏��������ӏ��������������ď��³������������µ������������«��������������¡������я��������¹��¡�돫����³���������������������������������������Ï�����������¡����Џ����������Џ�����������²�����������������𡯏��Ð��¡�1������1���������­�����������������������Џ����������Џ��������·�����������������ď������̏�¡�������½��ӡ���ӏ��������� 2 �����������Џ��������������������·���������·�����������Ï��³�����������������������ӏ��·���������¹��¡��½�����я�����������µ������������«���������������������¹��������������¡�������������������¡�ޏ��������\������¼\��ď������������������̏����㏢���������������ď���������������������������������������������¹½���������������������������������³�����������������я��������¹��¡�

��������¡�WebSocket���������돪������­���̏����µ������µ������������\������¼\��ď���������̏��·���������������������¹��¡�TCP���������������������������������ď��������­��������돩���������¹������\��\���\���\³\���������¾�������������돢���������������Ï�����»���������²½���µ���������������������������¹������������¡�\���\­\¹\���\������¼\��ď��������������Ï�����������������������������돢�������\������¼\��ď����ҡ�·�����Ï��������­���������³������������������»������������������¹��¡�
�돫�������¡�WebRTC�������������������̏����㏪���ԡ��돪���������������������������\������¼\��ď���������̏��·���������������������¹��¡�UDP���������������������������������������������叢����������������\��\���\���\³\���������¾�������������돢�­���������¹��¡�²¼¼�����������돩���������������«���̏��«���«��������������¡��½���������̡��돪�»���¹������������������¼��؏���¼��������Ï����������������ԏ����ď��µ�����������������������Ï����я�������¡��½�����������������������������������ď�������¡����������������ď��������������������ď��������������������«��������¡��µ���������µ������¼�������¹��ԏ�����������������������������������»��Џ�������돪�����̏����������������؏��������¹��¡�

¾���������½��Џ����������ď���������������������������������̏��«���������������¹�����������½���������\�ޏ��¼\¹���������������­µ������������������������¾��������������ġ����¹�����������������¹��¡��³�����Ï����������Ï��³������������½��Џ����������������؏��̏���̏��«���������������������������������«���������·���������������»�����я��̏�¡�¼�����돪�\���\­\¹\���\���\���\»���¼\��������ҏ����ҡ�¹���¹����������������UDP������»��������Ï��³�����������������������������¹��¡��³���������؏����ҏ�����������¹��Џ��������������������̏����Џ��·�����������������������������������Ï���������³����돢Ï��·���������¹���̏�¡񏪿�ߏ����������Ѣ�����¹������\������¼\��ď���\µ���¼\���\¹�������ޏ�Џ�����������WebSocket������WebRTC������¾���¼���������»�������������̏��ޏ�������������µ������������������³���������������������������������¹��¡�

��돪������������������¡��½������������NAT

��������¡�WebRTC������ Peer-to-peer connections��������������¡�UDP�����������������Ï���������������������������������������������������\��\���\���\³\���������»�����������������¡񏪡���¼���������\���\���\���\��������\���\���\���\���\����������ޏ��������\������¼\��ď����������я��«�����ҏ�������������������¹��¡��³������������¼���������\���\���\���\��������\���\���\���\���\�������������������������������������Ï������̡돫������������쏢�������������������������������������������������¹��¡�

������¾�����¡�²������«������\���\���\��������������䏪�³���¹���������������­��������¡�³������¼�����ӏ�����������\��\���\���\��㏢�¼\���\��\���\���\¹���̏����؏��������������������¹��¡�������¡�\��\���\���\��㏢�¼\���\��\���\���\¹������������������������������¡�\���\���\��ď��¼\���\���\���¾���������\µ���¼\Ð���¼�����������������䏪�³���������­������������������������¡����쏢���Ï�����������\���\������¼\���\Ð\���\���\������¼\��ď��¼�����������я���\���\���\��ď��¼\���\���\������������������������������������������­������\��\���\���\��㏢�¼\���\��\���\���\¹������\��\������¼\Ð\���\��\���\���\¹�����������С�¹���·�����ď�������¡񏪤¾��������������𡭏�������������𡭏��������������·���������«������\µ���¼\Ð���¼�����������䏪�³���·���������������������¹��¡��³�����Ï�����������\��\���\���\¹�����С�¹����돢돫�����NAT�����������������я��������¹��¡�
��������¡񏪣�����ď��¹������������¼�������\µ���¼\Ð���¼������»��Џ��������½�������������������������������������¹���̏�¡�A���µ�����я��̏�������������B�����������я�����WebRTC������»��������������������䏪�³���¹������¾���¹�����������돢������������ď��³���������̏����쏢�³���������������¹��¡��������¼������������B�����������я�����\���\���\���\��������IP\��\���\���\¹������\��\���\���\��㏢�¼\���\��\���\���\¹���������������������������·�����������Ï����ď�������¡�\���\���\��ď��¼\���\���\������������½������\��\���\���\¹����������������������������������������������«���������������������������³���������������������������������·�����������Ï��«���������������¹�������������������������¼���«��������������������������������ޏ����������������я��������¹���̏�����¡�����������������¡�A���µ�����я�����B�����������я�����\���\������¼\���\Ð\���\���\������¼\��ď��¼���������������ޏ�����������������������������\��\������¼\Ð\���\��\���\���\¹��������������\������¼\��ď����ҏ��������������̏���ߏ��̏����������������¹��¡�

\¹\\\1

���������������������½���������������ޏ����������������������������»�����я�¡�NAT������������\��\������¼\Ð\���\��\���\���\¹���«������\��\���\���\��㏢�¼\���\��\���\���\¹�����������С�¹���¹���������������­��������¡�\����¼\���������¹���������������������¼�ޏ�����»��ҏ����ҏ��«��������¡�²������������������������������¼�����ӏ��������������������������������Ï�����\��\��\���\�ޏ��¼\·\���\��я���������\������¼\��ď����ҏ�������������«������·������������������¹��¡��³������\����¼\���������¹�����������¡񏪣���¾���\���\���\��ď��¼\���\���\�����������������ď���µ������³�����������ď����я���������돪���쏢���������Ώ��������µ���������������¹��¡�����������������¡�A���µ�����я��������ӏ��³���������³�����������Џ�����������\����¼\���������¹���������\��\������¼\Ð\���IP\��\���\���\¹�����ҏ�����������������¡��½���������������Ð���·������\������¼\��ď����ҏ������������¡ߏ����������������Ï��³�����������ҏ��������������������ޏ��������Ð���������������������������������������������¹��¡򏪳��䏪���ӏ��������������������«���������������¹��¡�������������������������¡��³��������\����¼\���������¹���������\��\������¼\Ð\���\��\���\���\¹������\���\��¡ߏ����ҏ����������Ï�����������������B���µ�����я�������������𡯏��������폢���������������Ï������̏��������������������������������������¹��¡�

STUN������»��������쏢����

���³������������²���·������¹�����������ď�������������¡�"STUN\µ���¼\Ð���¼"�����������������Ï���������»������������������¹��¡����������돢¡�A���µ�����я�����STUN\µ���¼\Ð���¼���������Ð���·������UDP������\���\��\���\���(\������¼\���)�����ҏ�������������������¹��¡��½�����Ï��¹��������������¡�STUN\µ���¼\Ð���¼������������NAT����������돪���쏢����³��������������ӏ�����������������������\��\������¼\Ð\���\��\���\���\¹������\����¼\���������¹��������������С�¹���µ������������\���\��\���\������̏��������­��¡��³������¾��Ï����я����ҏ������������³���������̏��������­���������¹��¡�\µ���¼\Ð���¼���������½������¾��Ï����я�����A���µ�����я����������ӏ��·���������������������������¹��¡��³�����Ï��¹���������³��������������¡�A���µ�����я�����¼«����̏�����³��������������ӏ�����������������������\��\������¼\Ð\���\��\���\���\¹������\����¼\���������¹���������\���\�������ҏ������������³���������̏��������­���������¹��¡�(STUN�돪�³�돢����������TURN���������«��ġ����¹�����������������¹���̏�¡�����������������������������������������������������³����돢�)

\·\��\���\���\���\��

¼�������A���µ�����я�����STUN\µ���¼\Ð���¼���«������������������������\��\���\���\¹������\����¼\���������¹���������\���\��������B���µ�����я�������µ��𡯏����������²����������̏���ߏ��̏����������������¹��¡��³���������ď�������¡�\·\��\���\���\���\��\µ���¼\Ð���¼�����������������Ï���������������»������������������¹����SIP\µ���¼\Ð���¼���������«XMPP\µ���¼\Ð���¼���������«������»��������Ï������̏��������������������¹���̏�¡񏪪��½������������������������돢�������ޏ��������������³������������������\µ���¼\Ð���¼������»���������������������������������OK������¡�A���µ�����я�������¡��³������\·\��\���\���\���\��\µ���¼\Ð���¼���������Ð���·�����������½��ҏ�����\��\���\���\¹������\����¼\���������¹���¾��Ï����я����ҏ������������������¡�\·\��\���\���\���\��\µ���¼\Ð���¼���������½������¾��Ï����я�����B���µ�����я�����Push���·���������¹����������������������¡�B���µ�����я�����\·\��\���\���\���\��\µ���¼\Ð���¼������»��ӏ���돢����·��ҏ��̏���������������������������̏���ߏ��̏����������������¹��¡���������¡�\������¼\��ď�����Push���̏���̏���ߏ��������������������������¹������������¡�Comet������������������WebSocket������»��������������ď��������������������������·�����������Ï��������³���������������¹������¡��³���³���������������������������Ð���·�����������ď�����������������¡�����������������\��\���\���\¹������\����¼\���������¹���������\���\���������Ð���·��������¡�B���µ�����я�����A���µ�����я������ޏ�������䏢��²»���¼\������¼\��ď����ҏ�������������³���������̏��������­�����������������Ï��������������������������¹��¡�

\¹\\\2

�����������ď�¡�B���µ�����я��«������A���µ�����я��������Ð���·��������������¡���STUN������·��ҏ��������������Ï��Ï���\·\��\���\���\���\��\���\���\»���¼\��������ҏ�������������������Ï��Ï��Ï�¡ߏ����������������������ď�����������¼�����·������\���\������¼����������ޏ������������³�����������ҏ��������������Ð��¡񏪡Ð�����������ޏ�������䏢��²»���¼\������¼\��ď����ҏ�������������³����������²������½��¡��������³��������������¡�����½Ð�����㏢����\���\���\��я�����������������½Ð������¾������̏��������������¹��¡�\���\���\��я�����������������¼������½���¹������������������������ġ����¹�����������������я��������������µ���������������¹��������¡�������¡��³�����������ҡ��������ޏ�����»�����𡯏����������������Ï��������·�����ď����������������������Ï������̏���������̏�����¾������²������ WebRTC \��\���\���\��\���\���������\¹\������¼\��\��я����������������Ï��³�����������������������������я����������������Ï�����������������������»�ߏ��������������������������¹��¡������½¾���WebRTC������\³���¼\���\��\���\�돢�¹�����������������������������������������������������̏��¹�������������������¹���̏�¡��³������������¹¹���������������ޏ��������·���������������³�����Ï����������������á돪؏����Џ��������«¼��؏��ޏ��������������������¹����

STUN����»�����𡯏��������«�������������­�돪�������

�돫����«���·½�������������������돢�����돫������������������������¹���̏�¡�¼������������������­������²��򏪤��������ҏ����������������я��������������������¹��¡�\��\������¼\Ð\���\��\���\���\¹������\����¼\���������¹��������ҏ��������������ď�����������A���µ�����я�����STUN\µ���¼\Ð���¼������»��������������ď��������ޏ��������¹���̏�¡�¼�����돪�����\������¼\��ď�����B���µ�����я��̏������ď��µ��������������������������¡��³������\��\���\���\¹������\����¼\���������¹������������������������ď��·���������¹��¡�½¾��������������¡�NAT���̏��ӏ����������я�������¡��³������\������¼\��ď�¡�돪�½���\��\���\»\¹���·�����ď���STUN\µ���¼\Ð���¼����������\��\���\���\¹�������돫������Ï��������³���������«��������������������������������������������������������¼���«��¡񏪿����������·��������������𡯏�¡ߏ��������½���������·���������·�����������Ï��������³������\·\���\���\��쏢������������������������¾���·���������·�����������Ï������������¹��¡�¼�����돪�¡�¾��������������²������\·\���\���\��쏢����������������IP\��\���\���\¹���«�������������ď��µ�����������������Ï��̏�¡�½���������������\��\���\���\¹����\����¼\���\���\��돢�������\���\��\���\��������������������Ð��¡�³��돪���ӏ������¼�����ӏ��������������ޏ���������������NAT����������������������������돢�­���������»�����я������³���¼���������¼NAT������\���\���\³���¼\���NAT���������������������������¹��¡�����������¡񏪤¾���������������������������������¹���̏�¡��³���������؏�����\���\���\��������Џ��·������������������¡��³���³������������³����돢Ï��·���������¹��¡�����������¾��䏢�·���������������������ď�����������������¡����³������������������³���������µ���������������������������������«������������¡�

\¹\\\3

���������³������������ ����WebRTC ����������돢����¾���¹�������������돢�«������������¾���¹������̏���������¡��½���������������Ð����������\������¼\�����¼���̏��������¼���������¼NAT������»������������������������������«¼��������������������µ��¡������������������Ï��³���������������������������������¹��¡����Ï��¼���¼���¼�����я�¡��������������«��������¡�\��\���\���\��㏢�¼\���\��\���\���\¹ & NAT���̏�������������������¡񏪴���»��ӏ����������叢���я����������������Џ��·���������������������������¹��¡���������������������¡�\��\������¼\Ð\���IP\��\���\���\¹����³���\������¼\�����¼�����������؏�����������������IPv6���������叢���Ï��̏��������������������¹���������������������쏢�쏢���������������Ï��������������������������������­���������¹��¡�IPv4\��\���\���\¹����������³������������������̏��������������· IPv6 ���������̏����Џ��̏��½¼��������쏢�������������������������­������\���\���\���\���\�돢������¡�WebRTC����������³���¼��������؏���»���������������������\���\���\���\���\�돢�̏���ޏ�������·�����ď�����������¡����ӏ��³�����������������������������������Ï������������������������������������¹����

WebRTC������\³���¼\���\��\���\�돢�·�����������Ώ�����!!

�����������������Ï����؏�������¡�WebRTC�����ҏ����Џ�����������\³���¼\���\��\���\�돢����²��ҏ��������·�����ď�����������»�ߏ��������������¹��¡���²���»²¹������������·�����ď�����������¡񏪢���������¾���²��Ï��·������WebRTC\���\���\µ\���\���������repositry (http://code.google.com/p/webrtc-samples/����������������³«���µ������������������������ http://code.google.com/p/webrtc-samples/source/browse/trunk/apprtc/index.html���������¹��¡��³�����������ҡ���Ï����� https://github.com/KensakuKOMATSU/webrtc_test/blob/master/views/peerconnection.ejs������¼«����̏�����������������½��Џ����������������Ώ����ď�����������¡��½���³���«������\³���¼\���\��\���\�돢����\���\���\���\���������²��ҏ��������·���������¹��¡�

��������������������

WebRTC��������������������������������¡񏪢���������¾������²�����ď����������쏢�������������¹���̏�¡����������á돫������㏪��돪�����·�����������Ώ��������¹��¡�
  1. \«\���\���������\���\���\��������������䏪�³���¹������
  2. STUN\µ���¼\Ð���¼�����������䏪�³���¹������
  3. Peer���������䏪�³������������¼«����̏��������䏪�³¾��Ï����я����ҏ�������𡯏�����
  4. Peer���«�����������¡ޏ�������䏢��²»���¼\¹\���\������¼\���������¼��؏�ď��¹������
�����������������Ώ�������¡�돪�²¼������¼�����¹API������ W3C \���\���\���\���������µ­½��ҏ��µ��������������������������돪����·»����������������������돪叢�������������������¹������������𡭏������돪؏��������������µ��������������������»����·������»��Џ���������������돢����\³���¼\������������¹������¡�

\«\���\���������\���\���\��������������䏪�³���¹������

�����������돢¡�\«\���\���������\���\���\������«�������ޏ�������䏢����²»���¼\¹\���\������¼\���������¼������������·���������¹��¡��³������������¼���¹��ԏ��¹������API����getUserMedia()���������¹��¡�
navigator.webkitGetUserMedia("video,audio", onGUMSuccess, onGUMError);
�������돫��돫⏢ď�ԏ�������¡�ޏ�������䏢����²»���¼\���\Ð\���\¹�������½���������¾������\«\���\���������\���\���\������«����������������\��\���\»\¹���¹���������³�����������ҏ�¡񏪤��������ѡ돫⏢ď�ԏ�����������»��돫⏢ď�ԏ��������������½���������¾������\���\Ð\���\¹\��\���\»\¹��������������㏢��¼��돪���ԏ��·�����ď��������­������\³���¼\���\Ð\���\����������ď�ԏ�����»������������·���������������������¹��¡�\���\Ð\���\¹\��\���\»\¹��������������㏢�¹��������������¡�ޏ�������䏢��²»���¼\¹\���\������¼\������������Ð���¹������\���\���\���\��\���\������̏����ӏ��µ���������������¹��¡�
function onGUMSuccess(stream){
  var url = webkitURL.createObjectURL(stream);
  $("video#local")[0].src = url;
  localStream = stream;

  $("button.start").one('click', function(e){
    $(this).attr("disabled", "true");
    createPeerConnection();
  });
}
\³���¼\���\Ð\���\����������ď�ԏ����������돫��돫⏢ď�ԏ��������·��������¡�stream\���\���\���\��\���\������̏����ď�𡯏��������������������¹������������¡��³���������������Ð���·³���¼�����������돫�����¹��ԏ��������������¹��¡򏪡�돪�¾�����ԏ���̏�������¡�\������¼\«\���������²���������¾���������¼«����̏����¡ޏ�������䏢���ҏ��½¼�����¹�����������ԏ���̏�¡�webkitURL.createObjectURL()������\¹\���\������¼\���������\��\���\»\¹���¹������BlobURL������¼������������·��¡��½������������video\���\�돢����src����돪�­���������·������\»\���\������¹���������������ޏ�����²���������¾���������\«\���\����ޏ�������䏢�̏��½¼�����µ���������������¹��¡����������ď�¡񏢱������¹������»��������Ï����ď�������������¡�\��\������¼\Ð\��������Џ�ď�� localStream ���������³������stream�����ҏ����������Џ��·���������������������¹��¡�
���������¾��������¡񏪡���¼�������������Peer�������������������䏪�³������³«»������¹�����������ԏ���̏�¡���²��я�돫�����·������\µ\���\��\�����������������¡�\������¼\«\���������\���\������¼\��������������я�����������\���\���\���\������³«������������¾��؏����ӏ��������������Ώ���돢����������¾�����������������������돫��������������������������������������������¹������������¡��½���������؏�����������¼�������돪���폢�������������­������������������\���\���\��я�����\���\���\���\������·�����ď��������­�����������䏪�³³«»������¹�����������������Ï��������·���������·�����ď�¡�

STUN\µ���¼\Ð���¼�����������䏪�³���¹������

������������\���\���������������䏪�³�������돪䏢�������������¹��¡�createPeerConnection()��������������¡�돪�²¼���������������Ï����� Peer-to-peer connections API�����ҏ����Џ��������������������������¹����STUN\µ���¼\Ð���¼���������·��������¡�google���̏�����³«���·������������������\µ���¼\Ð���¼�����ҏ����̏����Џ��·���������������������¹������¡�
function createPeerConnection() {
  pc = new webkitDeprecatedPeerConnection("STUN stun.l.google.com:19302", onSignalingMessage);

  pc.addStream(localStream);

  // set handlers for peerconnection events
  pc.onconnecting = onSessionConnecting;
  pc.onopen = onSessionOpened;
  pc.onaddstream = onRemoteStreamAdded;
  pc.onremovestream = onRemoteStreamRemoved;
}
1¹��ԏ����䏢����webkitDeprecatedPeerConnection()��������¡�STUN\µ���¼\Ð���¼�����������䏪�³���·��¡�¼«����̏�����\��\������¼\Ð\���\��\���\���\¹������\����¼\���������¹���������¼������������·���������������������¹��¡��³���������̏�������㏢�¹��������������¡�\³���¼\���\Ð\���\����������ď�� onSignalingMessage���̏��������Ð���������������¹����������½��ҏ�����¡����������������Ώ�������¡�\���\½\���\������¾������ Deprecated �������������������������Ï�������¡��³������\���\½\���\��������������������돢����»�����𡯏��������������������������������¹��¡�𡭏������돪؏�����
���½���������������� pc.addStream() �����������������叢����¼������������·������ stream \���\���\���\��\���\���������\���\�������������ď��¹������\¹\���\������¼\������������·������»������������·���������������������¹��¡����������ď�¡�\���\���������������䏪�³������������������������������������³���¼���\���\���\���\������̏��������������·���������¹������������¡��½������\���\���\���\������������³���³������»������������·���������������������¹��¡�

Peer���������䏪�³������������¼«����̏��������䏪�³¾��Ï����я����ҏ�������𡯏�����

webkitDeprecatedPeerConnection()��������¡�STUN\µ���¼\Ð���¼���«������\��\���\���\¹����\����¼\���������¹���¾��Ï�����¼�����������������������㏢�¹��������������¡�»������������·������\³���¼\���\Ð\���\����������ď�ԏ��̏�����������½Ð���µ���������������¹��¡��³���³�������������돫��돫⏢ď�ԏ����������䏪�³�����Џ�����SDP\���\���\»���¼\�������STUN���«������¼������������·������\��\���\���\¹����\����¼\���������¹���������\���\��������¡�ޏ��������¾��Ï����я���������������µ­½��ҏ��µ��������������������������������³������¼���µ���������������������������¹������������¡��³������������²��ď��������«������¼���������������\���\������\���\���\���\�����������������·���������¹�������������̏�돫�����·������\µ\���\��\�����������������¡�\·\���\��\���������WebSocket������»�����������������¡�\���\���������䏪�³���������������³������\���\���\»���¼\��������ҏ��������·���������·�����ď�¡�WebSocket������\³���¼\���\��\���\�돢����chat�����ҏ�돫�����¾���¹�������������������������ޏ�����������������¾�������ߏ��������¹)��¡�\���\������¼\������������·��������������¡�돪�²¼���������������Ï�����������������¡�
function onSignalingMessage(mesg) {
  // WebSocket������»�����������������¡�\���\������SDP\���\���\»���¼\��������ҏ��¾��������¹������
  ws.send(mesg);
}
\���\������SDP\���\���\»���¼\���������¼��؏�ď��·�����ď�������¡�Peer-to-peer connections API������processSignalingMessage()\���\½\���\���������»�����������������¡�SDP\���\���\»���¼\��������ҡ���Ï����������䏪�³½�������������¹��ԏ��������������¹����¼��؏��ޏ����Ï�������¡�Peer-to-peer connections ������\���\���\¹\���\���\¹���̏�����������¾���¹�����������¡�\³\���\¹\���\���\���\��ď����ҏ����������я����������쏢�������³�����������ҏ����쏪���돢�������������������쏢��)��¡�
ws.onmessage = function(e){
  // Peer-to-peer connections ������\���\���\¹\���\���\¹���̏�����������¾���¹�����������¡����������돢돪�½���������
  // \³\���\¹\���\���\���\��ď����ҏ�����������
  if(!!pc === false) {
    createPeerConnection();
  }

  // SDP\���\���\»���¼\�����������������¡񏪢��䏪�³½�������������¹��ԏ����Ï�¡�
  pc.processSignalingMessage(e.data);
}

Peer���«�����������¡ޏ�������䏢��²»���¼\¹\���\������¼\���������¼��؏�ď��¹������

�����䏪�³½��������򏪪�����������¡�\���\������¼\���\���\���«�����������¡ޏ�������䏢��²»���¼\¹\���\������¼\���¼��؏�ď���²������½������������������������\���\��\³\���\���\·\���\��я�����\���\���\¹\���\���\¹���������Ð���·������ addstream \���\���\���\������̏��������������·���������¹������������¡��³���������������Ð���¹������\³���¼\���\Ð\���\������������·������¼��؏�ď��\¹\���\������¼\���������²������������������½¼�����¹������½�������������µ­½��ҏ��·���������¹��¡�
function onRemoteStreamAdded(e) {
  var url = webkitURL.createObjectURL(event.stream);
  $("video#remote")[0].src = url;
}
�돫⏢ď�ԏ����������ď�𡯏�����������������\���\���\���\���\���\���\���\��\���\��������� stream \��\���\���\���\��������¡�\���\������¼\������«������¼��؏�ď��¹�������ޏ�������䏢��²»���¼\¹\���\������¼\���������\���\���\���\��\���\�������³������¼���µ���������������������������¹������������¡�localStream������¾���¹�������������ޏ����� webkitURL.createObjectURL() ������BlobURL�����������С�¹��������¡�½��������������� video\���\�돢����src����돪�­������\»\���\������·���������¹��¡򡭏������ޏ��������¹��������¡�

���������ޏ����������������������������¹���̏�¡����ď���������ޏ�����\���\���\���²���µ��������ҏ��¹���������������ޏ����������������Ð��¡��³���������돢����������������\³���¼\���\��\���\�돢�������­���������¹��¡����������쏢¡�https://github.com/KensakuKOMATSU/webrtc_test������\µ���¼\Ð���¼\³���¼\��������������������³«���·���������������������¹������������¡��½�������������������������³���������·�����������Ώ��������������������µ��������¡�

����²���¾���²��Ï��·�����ď�����������¡�WebRTC�����¡돫������ԏ��������¹��¡�����������������¼«��ď��\­\���\��я�����������²��ҏ��·������������������������������������¡��³���³������¾���²��Ï��������µ���ޏ��������¹���̏�¡�W3C������\���\���\���\��������ҏ��«��������������¡��������«���������«�ޏ�䏢�������¼���½�����Ï��������¹��¡��³������������������������Web���������Ð���¹������¹�����𡯏��������ҡ돫������Џ��¹��������������������ӡ돫�������������������API��¡��򏢱���������ď������������³��⏢�·�����Ώ��������¹���������쏢��


��ď��µ���\���\���\��\���\���\­\���\�돢����
kotesaki at 21:52����Permalink����Comments(15)����TrackBack(0)����clip!
\��\���\»\¹\«\���\���\��ď��¼

    <% for ( var i = 0; i < 7; i++ ) { %> <% } %>
    <%= wdays[i] %>
    <% for ( var i = 0; i < cal.length; i++ ) { %> <% for ( var j = 0; j < cal[i].length; j++) { %> <% } %> <% } %>
    0) { %> id="calendar-47184-day-<%= cal[i][j]%>"<% } %>><%= cal[i][j] %>
    QR\³���¼\���
    QR\³¼\