playframework realtime web - guillaume bort & sadek drobi - december 2012
DESCRIPTION
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012TRANSCRIPT
2NC[HTCOGYQTM��4GCNVKOG�9GD
)WKNNCWOG�$QTV5CFGM�&TQDK
5CFGM�&TQDK2NC[�EQ�ETGCVQT�%61�"\GPGZKV[
)WKNNCWOG�$QTV2NC[�(QWPFGT<GPGZKV[�EQ�HQWPFGT
"UCFCEJG
"IWKNNCWOGDQTV "JIWGTICEJK
9GD�1TKGPVGF�#TEJKVGEVWTGU
9JGTG�CTG�YG�PQY!
'ZEKVKPI�VKOG�VQ�DG�KP�UQHVYCTG�FGXGNQROGPV
%NQWF��&KUVTKDWVGF�%QORWVKPI��&CVC��$KIIGT�&CVC��$KI�&CVC��+PHKPKVG�&CVC��(WPEVKQPCN�2TQITCOOKPI����
1DLGEV�'PVKV[�1TKGPVGF�2TQITCOOKPI�
#P�QDLGEV�TGRTGUGPVU�C�DWUKPGUU�GPVKV[
7UKPI�IGVVGTU�CPF�UGVVGT�QP�VJCV�QDLGEV�OCPKRWNCVGU�FCVCDCUG�TQYU�CWVQOCVKECNN[
'PQWIJ�VQ�NGCTP�CP�14/�#EVKXG�4GEQTF�VQ�OCMG�C�NKXKPI
8GT[�NKVVNG�RTQDNGO�UQNXKPI
1DLGEV�'PVKV[�1TKGPVGF�2TQITCOOKPI�
6JGP�YG�TGFKUEQXGTGF�VJG�KORQTVCPEG�QH�&CVC�
1DLGEV�'PVKV[�1TKGPVGF�2TQITCOOKPI�
1DLGEV�'PVKV[�1TKGPVGF�2TQITCOOKPI�
1DLGEV�'PVKV[�1TKGPVGF�2TQITCOOKPI�
1DLGEV�'PVKV[�1TKGPVGF�2TQITCOOKPI�
0GY�'TC�YKVJ�PGY�EJCNNGPIGU
#PCN[\KPI�DKI�UGVU�QH�FCVC
7UKPI�UGXGTCN�OCEJKPGU�HQT�EQORWVKPI�CPF�CPCN[\KPI�FCVC
+PVGITCVKPI�FKHHGTGPV�UGVU�QH�FCVC�KP�FKHHGTGPV�HQTOCVU
*CPFNKPI�NQVU�QH�WUGTU�TGSWGUVU
�9JCV�KU�2NC[HTCOGYQTM!
6JG�2NC[�HTCOGYQTM�OCMGU�KV�GCUKGT�VQ�DWKNF�YGD�CRRNKECVKQPU�YKVJ�,CXC���5ECNC�
2NC[�KU�DCUGF�QP�C�NKIJVYGKIJV��UVCVGNGUU��YGD�HTKGPFN[�CTEJKVGEVWTG�HQT�JKIJN[�UECNCDNG�CPF�TGCNVKOG�YGD�CRRNKECVKQPU
����VJCPMU�VQ�KVU�TGCEVKXG�OQFGN��DCUGF�QP�(WVWTGU�CPF�+VGTCVGG�+1�
9J[�CPQVJGT�YGD�HTCOGYQTM!
9JCVU�YTQPI�YKVJ�VTCFKVKQPCN�9#4�UGTXGTU!
5QOG�EQPVGZV���
9J[�CPQVJGT�YGD�HTCOGYQTM!
��7UGT�����6JTGCF
9J[�CPQVJGT�YGD�HTCOGYQTM!
��7UGT�����6JTGCF
�/QTG�+1��NQPIGT�EQPPGEVKQPU��!
%QPPGEVKQPU
9J[�CPQVJGT�YGD�HTCOGYQTM!
0QP�DNQEMKPI
4GCEVKXG
9J[�FKFPV�+�UC[�#U[PEJTQPQWU!
5EJGFWNGF�%QORWVCVKQPU��%QORWVCVKQPU�KP�VJG�(WVWTG
*QY�FQ�YG�VCNM�CDQWV�VJGUG�EQORWVCVKQPU!*QY�FQ�YG�OCPKRWNCVG�VJGO!
5EJGFWNGF�%QORWVCVKQPU��%QORWVCVKQPU�KP�VJG�(WVWTG
(WVWTG=6?
5EJGFWNGF�%QORWVCVKQPU��%QORWVCVKQPU�KP�VJG�(WVWTG
#�(WVWTG
4GRTGUGPVU�C�XCNWG�VJCV�YKNN�DG�CXCKNCDNG�KP�VJG�(WVWTG�QT�C�(CKNWTG�
2TQXKFGU�C�YC[�VQ�DG�PQVKHKGF�YJGPGXGT�VJG�XCNWG�KU�CXCKNCDNG�QP%QORNGVG�
*CU�UQOG�PKEG�EQORQUKVKQP�RTQRGTVKGU
#�(WVWTG��PKEG�RTQRGTVKGU
�����(WVWTG=(WVWTG=#??����� �����(WVWTG=#?
����������.KUV=(WVWTG=#??����� �����(WVWTG=.KUV=#??
(WVWTG=#?�� �#�� �$������ ����(WVWTG=$?
#PF�C�PKEG�CRK�YKVJ�OCR��HNCV/CR��HKNVGT��EQNNGEV��TGEQXGT��GKVJGT�CPF�QVJGT�JKIJGT�QTFGT�HWPEVKQPU
&GOQ
�9JCV�KU�4GCNVKOG�9GD!
9KMKRGFKC��6JG�TGCN�VKOG�YGD�KU�C�UGV�QH�VGEJPQNQIKGU�CPF�RTCEVKEGU�VJCV�GPCDNG�WUGTU�VQ�TGEGKXG�KPHQTOCVKQP�CU�UQQP�CU�KV�KU�RWDNKUJGF�D[�KVU�CWVJQTU��TCVJGT�VJCP�TGSWKTKPI�VJCV�VJG[�QT�VJGKT�UQHVYCTG�EJGEM�C�UQWTEG�RGTKQFKECNN[�HQT�WRFCVGU�
�9JCV�KU�4GCNVKOG�9GD!
Ɣ .QPI�RQNNKPIƔ %QOGV��*VVR�����EJWPMGF�CPF�JCEMUƔ 9GDUQEMGVUƔ 5GTXGT�5GPV�'XGPVU
�+PURKTCVKQP��GZCORNGU�QH�469�YKVJ�2NC[�
%QPPGEVGF�RGGTU�GZEJCPIKPI�FCVC�C�EJCV�TQQO��RGGT�ICOGU������
5VTGCOKPI�KPHQTOCVKQP�U[UVGOU�OQPKVQTKPI��FCVCUVQTG�WRFCVGU������
%QNNGEVKPI�/CR�4GFWEG
9GD�5VTGCOU�#2+�OCUJWRU
#�OKZ�QH�VJGUG
�+PURKTCVKQP��GZCORNGU�QH�469�YKVJ�2NC[�
JVVR���GP�NKEJGUU�QTI�
JVVR���EQPUQNG�FGOQ�V[RGUCHG�EQO�
JVVR���NKXG�IKNV�EQO
5VTGCOU�QP�VQR�QH�PQP�DNQEMKPI��TGCEVKXG�CTEJKVGEVWTG
RWDNKE�UVCVKE�9GD5QEMGV�5VTKPI �KPFGZ��]
��TGVWTP�PGY�9GD5QEMGV�5VTKPI ��]�������������%CNNGF�YJGP�VJG�9GDUQEMGV�*CPFUJCMG�KU�FQPG�
����RWDNKE�XQKF�QP4GCF[9GD5QEMGV�+P�5VTKPI �KP��9GD5QEMGV�1WV�5VTKPI �QWV��]���������������(QT�GCEJ�GXGPV�TGEGKXGF�QP�VJG�UQEMGV�
������KP�QP/GUUCIGPGY�%CNNDCEM�5VTKPI ��]���������RWDNKE�XQKF�KPXQMG5VTKPI�GXGPV��]���������������������������.QI�GXGPVU�VQ�VJG�EQPUQNG�����������RTKPVNPGXGPV�������������_�������_�����������������9JGP�VJG�UQEMGV�KU�ENQUGF�
������KP�QP%NQUGPGY�%CNNDCEM���]���������RWDNKE�XQKF�KPXQMG��]������������������������RTKPVNP�&KUEQPPGEVGF������������_������_�����������������5GPF�C�UKPING�*GNNQ��OGUUCIG
������QWV�YTKVG�*GNNQ��������������_���
#PF�VJCVU�CDQWV�KV!
;QW�VCMG�VJG�DNWG�RKNN���VJG�UVQT[�GPFU��+�YCNM�[QW�VJTQWIJ�C�EQWRNG�QH�GZCORNGU�CPF�[QW�FQ�[QWT�DGUV�YKVJ�YJCV�[QW�IQV�
;QW�VCMG�VJG�TGF�RKNN���[QW�UVC[�KP�9QPFGTNCPF�CPF�+�UJQY�[QW�JQY�FGGR�VJG�TCDDKV�JQNG�IQGU�
+�CO�QPN[�QHHGTKPI�[QW�VJG�VTWVJ
;QW�VCMG�VJG�DNWG�RKNN���VJG�UVQT[�GPFU��+�YCNM�[QW�VJTQWIJ�C�EQWRNG�QH�GZCORNGU�CPF�[QW�FQ�[QWT�DGUV�YKVJ�YJCV�[QW�IQV�
;QW�VCMG�VJG�TGF�RKNN���[QW�UVC[�KP�9QPFGTNCPF�CPF�+�UJQY�[QW�JQY�FGGR�VJG�TCDDKV�JQNG�IQGU�
9JCV�CTG�5VTGCOU!
*QY�FQ�YG�VCNM�CDQWV�VJGO!
%CP�+�CUUKIP�VJGO�VQ�XCTKCDNGU!
%CP�+�CFCRV�VJGO!
+U�VJKU�YJCV�YG�TGCNN[�PGGF�VQ�FGCN�YKVJ�5VTGCOU!
������_�����������������5GPF�C�UKPING�*GNNQ��OGUUCIG
������QWV�YTKVG�*GNNQ��������������_
&GLC�8W!
������_�����������������5GPF�C�UKPING�*GNNQ��OGUUCIG
������QWV�YTKVG�*GNNQ��������������_
&GLC�8W!
&GLC�8W!
RWDNKE�ENCUU�*GNNQ9QTNF�GZVGPFU�*VVR5GTXNGV�]
��RWDNKE�XQKF�FQ)GV*VVR5GTXNGV4GSWGUV�TGS��*VVR5GTXNGV4GURQPUG�TGU��������������������������������VJTQYU�5GTXNGV'ZEGRVKQP��+1'ZEGRVKQP�]
����TGU�UGV%QPVGPV6[RG�VGZV�JVON�������2TKPV9TKVGT�QWV���TGU�IGV9TKVGT��
����QWV�RTKPVNP��*6/. �������QWV�RTKPVNP��*'#& �6+6.' *GNNQ�9QTNF��6+6.' ��*'#& �������QWV�RTKPVNP��$1&; �������QWV�RTKPVNP��$+) *GNNQ�9QTNF��$+) �������QWV�RTKPVNP���$1&; ��*6/. �����__
9JCV�CDQWV!
��������(QT�GCEJ�GXGPV�TGEGKXGF�QP�VJG�UQEMGV������KP�QP/GUUCIGPGY�%CNNDCEM�5VTKPI ��]��������RWDNKE�XQKF�KPXQMG5VTKPI�GXGPV��]�������������������������.QI�GXGPVU�VQ�VJG�EQPUQNG����������RTKPVNPGXGPV������������_�����_��
%CNNDCEM�*GNN�
9JCV�CTG�5VTGCOU!
*QY�FQ�YG�VCNM�CDQWV�VJGO!
%CP�+�CUUKIP�VJGO�VQ�XCTKCDNGU!
%CP�+�CFCRV�VJGO!
+PRWV5VTGCO���1WVRWV5VTGCO
$WV�VJG[�CTG�DNQEMKPI�CPF�NCEM�EQORQUKVKQP�HCEKNKVKGU�
&KF�KPFWUVT[�OQXG�DCEMYCTFU!
9JCV�CTG�5VTGCOU!
5VTGCOU�CU�HKTUV�ENCUU�EKVK\GP��PQV�TGRTGUGPVGF�CU�GXGPVU�CPF�OGVJQFU�
5VTGCOU��#FCRVGTU��5KPMU
+VGTCVGG='�4?
%QPUWOGU�EJWPMU�QH�V[RG�'
'XGPVWCNN[�EQORWVGU�C�XCNWG�QH�V[RG�4
(CPE[�HQNF��[QW�ECP�RCWUG�
+VGTCVGG='�4?
+OOWVCDNG�UVCVG�OCEJKPG
&QPG'�4�
%QPV'�� �+VGTCVGG='�4?�
'TTQT
+VGTCVGG='�4?��PKEG�RTQRGTVKGU
+VGTCVGG='�+VGTCVGG='�4??�� �+VGTCVGG='�4?
(WVWTG=+VGTCVGG='�4??�� �+VGTCVGG='�4?
+VGTCVGG='�4?�� �4�� �7��� �+VGTCVGG='�7?
'PWOGTCVQT='?
+VGTCVGG='�4?�� �+VGTCVGG='�4?
'PWOGTCVQT='?��PKEG�RTQRGTVKGU
'PWOGTCVQT='PWOGTCVQT='??�� �'PWOGTCVQT='?
(WVWTG='PWOGTCVQT='??�� �'PWOGTCVQT='?
CPF�UQOG�PKEG�HWPEVKQPU
OCR��HNCV/CR��KPVGTNGCXG��EQORQUG�����
&GOQ
+P�5ECNC!
#�RQYGTHWN�TGCEVKXG�5VTGCO�OCPKRWNCVKQP�#2+�HQT�FQKPI�UGTKQWU�4GCNVKOG�9GD�CRRNKECVKQPU��YKVJ�UQRJKUVKECVGF�NQIKE�CPF�TWNGU�
9G�FQPV�LWUV�IKXG�[QW�VJG�RQUUKDKNKV[��YG�IKXG�[QW�VJG�VQQNU�
3WGUVKQPU!
Ɣ YYY�RNC[HTCOGYQTM�EQO
Ɣ %JGEM�CPF�RNC[�YKVJ�VJG�RTQXKFGF�UCORNGU
Ɣ #UM