ãä»çµã¿è§£èª¬ãWebSocketã¯ã©ããã£ãŠãªã¢ã«ã¿ã€ã éä¿¡ãå®çŸããŠããã®ã
LINEãšãSlackã®ãã£ããã£ãŠãéã£ãç¬éã«çžæã«å±ãããïŒããã£ãŠã©ããªã£ãŠãã®ïŒ
ãã質åã ããæ®éã®WebããŒãžã¯HTTPã£ãŠããä»çµã¿ã§ããªã¯ãšã¹ããéã£ãŠãã¬ã¹ãã³ã¹ããããããç¹°ãè¿ããŠããã ãã§ãããã ãšããµãŒããŒããèªçºçã«ããŒã¿ãéããªããã ãã
ãã£ããµãŒããŒããã¯éããªãã®ïŒãããæ°ããã¡ãã»ãŒãžããããã©ãããã©ããã£ãŠç¥ãã®ïŒ
æã¯ãããŒãªã³ã°ãã£ãŠããæ¹æ³ã䜿ã£ãŠããã ãã¯ã©ã€ã¢ã³ãããæ°ããã¡ãã»ãŒãžããïŒãã£ãŠæ°ç§ããã«ãµãŒããŒã«èãã«è¡ãããæ¹ã ããã§ããããã¡ãã»ãŒãžããªããŠãæ¯åéä¿¡ããããããµãŒããŒã«ãåç·ã«ãè² è·ãããããã ãã
ããã¯ç¢ºãã«ç¡é§ãå€ããâŠãWebSocketã ãšã©ãéãã®ïŒ
WebSocketã¯æåã ãHTTPã§æ¥ç¶ããŠããããããWebSocketã§è©±ããããã£ãŠãé¡ããããã ããããããã³ãã·ã§ã€ã¯ãã£ãŠåŒã¶ãããµãŒããŒãOKããããHTTPããWebSocketã«ãããã³ã«ãåãæ¿ãã£ãŠãããããã¯åæ¹åã«ããŒã¿ãéãåããåžžææ¥ç¶ã®ç¶æ ã«ãªããã ã
æåã¯HTTPã§å§ãŸããã ãïŒåãæ¿ãã£ãåŸã¯ã©ããªãã®ïŒ
äžåºŠWebSocketæ¥ç¶ã確ç«ãããããµãŒããŒãããã¯ã©ã€ã¢ã³ãããã奜ããªã¿ã€ãã³ã°ã§ããŒã¿ãéããããã«ãªãããHTTPã¿ããã«æ¯åããªã¯ãšã¹ãâã¬ã¹ãã³ã¹ãã®ãã¢ãäœãå¿ èŠããªãããããªãŒããŒãããããããå°ãããã ãããããŒæ å ±ãæåã®ãã³ãã·ã§ã€ã¯ã ãã§ããã®åŸã¯ããŒã¿æ¬äœã ããããåããããããã
ãã£ãã以å€ã«ãWebSocketã£ãŠäœ¿ãããŠãã®ïŒ
ãããããããããªã³ã©ã€ã³ã²ãŒã ã§ã¯ãã¬ã€ã€ãŒã®åãããªã¢ã«ã¿ã€ã ã«å ±æããã®ã«äœ¿ãããæ ªäŸ¡ãFXã®ãã¬ãŒãã£ã³ã°ç»é¢ã§ã¯äŸ¡æ Œããªã¢ã«ã¿ã€ã ã§æŽæ°ããããããããšã¯Googleããã¥ã¡ã³ãã¿ãããªå ±åç·šéããŒã«ã§ããä»ã®äººã®ç·šéãããåæ ãããã®ã¯WebSocketã®ãããã ãã
Socket.IOã£ãŠããã®ãèããããšãããã©ãWebSocketãšã¯éãã®ïŒ
Socket.IOã¯WebSocketã䟿å©ã«äœ¿ãããã®ã©ã€ãã©ãªã ããWebSocketã䜿ããªãç°å¢ã§ã¯èªåçã«ããŒãªã³ã°ã«ãã©ãŒã«ããã¯ããŠãããããæ¥ç¶ãåãããšãã®åæ¥ç¶ããéšå±ïŒã«ãŒã ïŒããšã«ã¡ãã»ãŒãžãåããŠéãæ©èœãªãããæšæºã§ä»ããŠããã ãçã®WebSocketã ãã ãšèªåã§å®è£ ããªããšãããªãéšåãã«ããŒããŠããããã ãã
SSEã£ãŠããã®ãããã£ãŠèãããã©ãWebSocketãšã©ã䜿ãåããã®ïŒ
SSEïŒServer-Sent EventsïŒã¯ãµãŒããŒããã¯ã©ã€ã¢ã³ããžã®äžæ¹åã ãã®éä¿¡ãªãã ãæ ªäŸ¡ã®é ä¿¡ããã¥ãŒã¹ãã£ãŒãã¿ããã«ããµãŒããŒããéãã ããã®çšéãªãSSEã§ååã ããHTTPã®ä»çµã¿ã®äžã§åãããå°å ¥ãç°¡åã ããéã«ãã£ãããã²ãŒã ã¿ããã«åæ¹åã§ããåããå¿ èŠãªãWebSocketãéžã¶ããšãã䜿ãåãã ãã
WebSocketã£ãŠåžžæã€ãªãã£ã±ãªãã ãšãåãããããªãã®ïŒ
ããããããããå®ã¯éçšäžã®å€§äºãªãã€ã³ããªãã ããããã¯ãŒã¯ãäžå®å®ã ã£ããããµãŒããŒãã¿ã€ã ã¢ãŠãããããããšåããããšããããã ãããããã¯ã·ã§ã³ã§ã¯ãping/pongãã£ãŠããå¿æç¢ºèªã®ãã¬ãŒã ã宿çã«éã£ãŠæ¥ç¶ãç¶æããããåææã«èªå忥ç¶ããããžãã¯ãå ¥ããã®ãå®ç³ã ããããŒããã©ã³ãµãŒã®èšå®ã§WebSocketæ¥ç¶ãåãããªãããã«ããé æ ®ãå¿ èŠã ãã
çµæ§å¥¥ãæ·±ããã ãâŠïŒãŸãšãããšã©ãããããšã«ãªãã®ïŒ
ãŸãšãããšãWebSocketã¯ãHTTPã®éçãè¶ ããŠããµãŒããŒãšã¯ã©ã€ã¢ã³ããåžžæã€ãªãã£ãŠåæ¹åã«ããŒã¿ãããåãããä»çµã¿ãã ãããªã¢ã«ã¿ã€ã æ§ãæ±ãããããã£ãããã²ãŒã ãã©ã€ãæŽæ°ã«ã¯æ¬ ãããªãæè¡ã ããäžæ¹åã§ãããã°SSEã䟿å©ã«äœ¿ããããã°Socket.IOã£ãŠããéžæè¢ããããçšéã«åãããŠäœ¿ãåããã®ããã€ã³ãã ãã