WebSocket ���ץ�����ʬ��
�Ƕ� SPDY �� WebSocket �����Ĥ��Ǥ��͡� ���轵�� SPDY & WS �ٶ��� �⡢���100̾���Ф��� ���üԤ� 247 ̾�Ȥ��ʤꥢ�Ĥ����ȤˤʤäƤ��ޤ���
����ͽ���Ȥ����櫓�Ǥ�ʤ��Ǥ������Ƕ� WebSocket ��¥����ӥ��ؤ� Ƴ����ˡ��ͤ��ʤ���ͷ��Ǥ����Τǡ� WebSocket �����ʬ����ˡ�ˤĤ��� �ͤ��Ƥ��뤳�Ȥ�񤤤Ƥ������Ȼפ��ޤ���
���ơ��ȥե�� WebSocket ���ץꥱ�������
HTTP �����ӥ��ϴ���Ū�˥��ơ��ȥ쥹�ʼ����ˤʤäƤ��ꡢ�ꥯ�����Ȥ���뤿�Ӥ� DB�����С��� memcached �ʤɤΥХå�����ɤ���������������֤��Ƥ��ޤ�����
���ι����Ǥ� Web ���ץ꼫�Τϴ����˥��ơ��ȥ쥹�����뤳�Ȥ��Ǥ��Ƥ���Τǡ� ���ʬ�����ϥ饦��ɥ��ӥ����Υ��ץꥱ��������̵�뤷�����ʬ���򤹤뤳�Ȥ��Ǥ��ޤ�����
�������� WebSocket ���о줷�ƥꥢ�륿���� Web ����ڤ������줬��å������Ƥ���ȡ� ���ơ��ȥ쥹���Ǥϸ�Ψ�������ʤ��������ޤ���
���Ȥ���ʣ���Υ���åȥ롼�����ĥ���åȥ��ץ�����硢����åȤ����Ƥ� Redis �˳�Ǽ���� Redis �� pubsub ��ǽ��Ȥä�¾�� Web �����С��˹��������Τ��뤳�Ȥ��Ǥ��ޤ����� Redis �� subscribe ���Ƥ��� Web �����С����Ƥ����Τ����ꡢ����åȥ������������ꥯ�����Ȥ� ���Ф��ʤ���Фʤ�ޤ���.
MMO ������Τ褦�˥��ץꥵ���С��Υ����˥���åȥ������Ǽ����Ʊ������åȥ롼��ˤ��� �桼����������Ʊ�����ץꥵ���С�����³����褦�ˤ���Фɤ��Ǥ��礦���� ���ץꥵ���С��ϥХå�����ɤ������Τ������ä����å�������������ʤ��Ƥ������� ��å��������ۿ��Ǥ��ޤ�������ʤ�Хå�����ɤȤ��̿��ϥ�������¸����1��ǺѤߤޤ���
����ˡ�Ǥ��ι������Ȥ��硢���ץ�򥹥ơ��ȥ쥹�ʥե����Web���ץ�ȥ��ơ��ȥե�� �Хå�����ɥ��ץ��2�ʹ����ˤ��뤳�Ȥ��Ǥ��ޤ��� �Ǥ⡢�������٤ʤ��С����ץ�������ľ�ܥꥯ�����Ȥο���ʬ�����äƤ��ޤä��ۤ��� �ڤ����㥳���ȤǤ���͡�
redis ��Ȥä�ưŪ�����ʬ��
�����ǡ� redis �� URL �Υѥ����Ȥ�ʬ������Ǽ���Ƥ����������Ȥä�ưŪ�� ��С����ץ��������빽����ͤ��Ƥߤޤ�����
��Ψ�����®�٤Τ��Ȥ�ͤ����顢��С����ץ������� WebSocket �Υǥ����ɡ����󥳡��ɤ򤹤� ���⡢HTTP �����С��� Upgrade �إå��򸫤Ĥ���� TCP �ץ������Ȥ���ư���ۤ��������Ϥ��Ǥ���
Go
�ǽ���ܤ�Ĥ����Τ� Go �Ǥ���nginx ���ϥ����ɤ��ɤ߽ñ¤¤ï¿½ï¿½ä¤¹ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ç¤ï¿½ï¿½ï¿½ (node.js �Ǥ��ɤ��ΤǤ����Ŀ�Ū�ˤ� JavaScript ���� Go �����������Ǥ�)
Go ��ɸ��饤�֥�� "net/http" �ˤϤ��Τ�Υ��Х�� revserseproxy ������ޤ��� ����������� WebSocket ���б����Ƥ��ʤ��Τǡ�����äȲ�¤���� Upgrade �إå��򸫤Ĥ���� TCP �ץ������ˤʤ뵡ǽ���ɲä��ޤ����� (methane/rproxy)
���Ȥ� redigo �Ȥ��� Redis ���饤�����(̾�������å�������) ���Ȥ߹�碌��Ф���ڤ˸�����С����ץ������δ����Ǥ���
nginx + lua
���������� nginx ��Ƕ� WebSocket ���б������ä�����ˤʤäƤ��ʡ��Ȼפä�Ĵ�٤Ƥߤ�ȡ� ����� Upgrade �إå��򸫤� TCP �ץ������Ȥ��Ƥդ�ޤ��褦�Ǥ��� �����Ĵ�٤Ƥߤ��� Redis + Lua ��Ȥä�ưŪ�����ʬ�����륵��ץ�⤤���Ĥ��ߤĤ���ޤ�����
�������� nginx �Υ��֥ꥯ�����Ȥϴ���Ū�� HTTP �ѤǤ��ޤ� memcached �� redis �˳�Ǽ���� ����ʸ����ò°·¤ï¿½ï¿½Î¤Ë¸ï¿½ï¿½ï¿½ï¿½Æ¤ï¿½ï¿½Ê¤ï¿½ï¿½Î¤Ç¡ï¿½ lua-resty-redis �Ȥ��� pure Lua �Υ饤�֥���Ȥäƽñ¤¤Ê¤ï¿½ï¿½ï¿½ï¿½Æ¤ß¤Þ¤ï¿½ï¿½ï¿½ï¿½ï¿½
���������� nginx ����Ʊ����ǽ��ȤäƤ����Τ� Redis ���䤤��碌���Ƥ���� �֥��å�������Ϥ��ޤ��󤷡����ͥ������ס�����ǽ�Ǥ���
���ä�����ä��Τ� Go �Ǥ�Ҳ𤷤���Τ�, nginx ���Ȥ���ʤ�⤦ nginx �Ǥ����Ǥ��͡� �Ǥ⡢��� Redis ���䤤��碌��ΤǤϤʤ� expire �դ��� LRU ����å���򥤥����Ǥ��Ȥ��� Socket.IO �Υ��å�������Ϥ��Ƽ�ʬ�� Redis �˳�Ǽ����Ȥ�ʣ���ʤ��Ȥ򤹤�ʤ� Go �ζ��ߤ������Ƥ��뤫�⤷��ޤ���
����ץ�
���Ԥ������ޤ���������ץ�Ϥ�����ˤʤ�ޤ���
KLab/websocket-reverseproxy-demo
���Υ���ץ�Ǥϡ� Tornado ��Ȥä���������ư������åȥ��ץ��2�ĤΥݡ��Ȥ�Ω���夲�� Redis �˥���åȥ롼�ऴ�ȤΥХå�����ɤ��Ǽ������ǡ� nginx �� go �ˤ���С����ץ�������ư����ǧ���Ƥ��ޤ���
Go �� nginx �Ⳬȯ�Ǥ�ȤäƤ���ΤǾ����ϡ��ɥ뤬�⤤���⤷��ޤ��󤬡� SPDY & WS �ٶ���� ���üԤϤ���ͽ���Ȥ��ƻ�ƤߤƤ���������
�ȥ�å��Хå�URL
���ε����ؤΥ�����
���Υޥ����ϥե졼����˥������4�Х��Ȥǥե졼����Υǡ����� XOR ���ޤ���
�ʤΤǡ�����ץ졼��ƥ����Ȥ��򤱤���ϤǤ���ΤǤ������ȤƤ��ñ�����ɲ��Ǥ����ʤ��Τǡ������奢�ǤϤ���ޤ���
�ü�� proxy �˼��⤵��ʤ�����ˤ⡢ WebSocket ��Ȥ����� TLS �����Ѥ��뤳�Ȥ��侩����ޤ���