PHPã§WebSocketãæ±ãã«ã¯ã©ããããè¯ãããªã¼ã¨æ¢ãã¦ã¿ãã¨ãRatchetã¨ããã©ã¤ãã©ãªãè¦ã¤ããã¾ããã å ¬å¼: http://socketo.me/ GitHub: https://github.com/cboden/Ratchet GitHubã®ã¹ã¿ã¼ã®æ°ããããªãã ã£ãã®ã§ãã©ããªæãã確èªãã¦ã¿ã¾ããã以ä¸ãæé ã§ããå°ãMacã§ç¢ºèªãã¦ãã¾ãã (1) composer.jsonãç¨æãã¦ããã¤ãã®ã³ãã³ããå®è¡ãã¾ãã http://socketo.me/docs/install ãåèã«ãã¦ãã¾ãã { "require": { "cboden/Ratchet": "0.2.*" } } $ curl -s https://getcomposer.org/installer | php $ php composer.phar install (2) ãµã³ãã«ã
nginx(1.3.13)ã§WebSocketã®ãããã·ã試ãã¦ã¿ã¾ãã 2013/2/19ã«nginxãæ£å¼ã«WebSocketã«å¯¾å¿ããã¨ã¢ãã¦ã³ã¹ããã£ãã®ã§ã試ãã«ä½¿ã£ã¦ã¿ã¾ããã ãã¦ã³ãã¼ãã»ã¤ã³ã¹ãã¼ã« ããããnginx-1.3.13ããã¦ã³ãã¼ããã¦ãã¦ãã¤ã³ã¹ãã¼ã«ãã¾ãã ã¤ã³ã¹ãã¼ã«ãªãã·ã§ã³ã¯ããã¦ããã©ã«ã㧠$ wget http://nginx.org/download/nginx-1.3.13.tar.gz $ tar xvf nginx-1.3.13.tar.gz $ cd nginx-1.3.13 $ ./configure $ make $ sudo make install è¨å®ãã¡ã¤ã«ã®æ¸ãæã 次ã«nginx.confãæ¸ãæãã¾ããæ§æ㯠ãªãã¼ã¹ãããã·: 192.168.0.8:80 ããã¯ã¨ã³ããµã¼ã: 192.168.0.2:3000
RealtimeViewerãä½ã£ããREADMEãæ¸ãã®ãã¨ã¦ãæã件ã«ã¤ã㦠READMEãæ¸ãã¨ãã¯Markdownå½¢å¼ã§æ¸ãã¨æãã®ã§ãããåå æä¸ãã®è¨æ³ã§æ¸ãã¦ããããã§ã¯ç¡ãã®ã§ããªããªãè¦ããããªãããã§ããRubyã®å ´åã¯RDocå½¢å¼ã§æ¸ãã®ãæ®éãªã®ããªï¼ã¾ãWikiã«ããä½ã«ããä¼¼ããããªè¨æ³å¢ãããã ã¨æãã®ã§ãã ãããã®ãããªãã¨ãã«ã¯ããã¬ãã¥ã¼ããªãã確èªã§ããã¨ã¨ã¦ã幸ãã«ãªãã¾ããã¨ã¯è¨ã£ã¦ãããã©ã¦ã¶ä¸ã§å ¥åãªãã¦ããããªãããèªåã®ãæ°ã«å ¥ãã®ã¨ãã£ã¿ã使ãããããã§ãã ãã¡ãã®è¨äºã«ãããã¼ã«ã使ã£ã¦ããã®ã§ãããã©ããèªåã®ç°å¢ã§ã¯ãã¡ã¤ã«ãä¿åããªããã¨ãé«ç¢ºçã§readã§ãããããã§ã»ã»ã ã¨ããããã§ï¼ä¸è¨ãã¼ã«ãåèã«ãã¦ï¼èªåã§ä½ã£ã¦ã¿ã¾ããã ã¤ã³ã¹ãã¼ã«ãããã³å®è¡æ¹æ³ã¯ä»¥ä¸ã®ããã«ãªãã¾ãã gem install rdoc-v
intro ãã®è¨äºã¯ æ±äº¬Nodeå¦åç¥2012 ã¢ããã³ãã«ã¬ã³ãã¼ : ATND ã® 24 æ¥ç®ã®è¨äºã§ãã Socket.IO ã® 1.0 ããåºãåºãã¨ãã£ã¦å ¨ç¶åºãªãã®ã§ã ãããããã¦ããæ¹ãå¤ãã¨æãã¾ãã ãããããã®è£ã§ã¯ Engin.IO ã¨ãããå²ãã¨è¯ãæãã® ãã¡ããªã¼ããã¸ã§ã¯ããã§ãã¦ãã¦ã ã¡ããã©å æ¥ RealtimeConf ã§ããã®è©±ãããã¾ããã ãã㯠Socket.IO ã«ãç¹ããã¯ãªããªã®ã§ã ä»æ¥ã¯ãã® Engine.IO ã®è©±ããã¾ãã åèã¯ãã®ã¸ãã https://github.com/LearnBoost/engine.io https://vimeo.com/52496621 Engine.IO 㨠Socket.IO (㨠WebSocket.IO) Socket.IO ã¯ã 1.0 ãè¦éã«å ¥ãããããã§ã é¢é£ããã¸ã§ã¯ã
PHPWebSocket Chatã¯PHP製ã®WebSocketãµã¼ãã«ãããã£ãããã¢ã§ãã WebSocketã¨ããã¨node.jsã¨ããã¤ã¡ã¼ã¸ãããã¾ãããå®éã¯ãããªãã¨ã¯ããã¾ãããä»ã®è¨èªã ã£ã¦WebSocketãµã¼ãã«ãªããã¾ããä»åã¯PHPã§ä½ãããPHPWebSocket Chatãç´¹ä»ãã¾ãã æ¥ç¶ãã¾ããã çºè¨ãã¾ããã ãã¡ãã¯ãµã¼ãå´ã PHPWebSocket Chatã¯HTMLãã¡ã¤ã«ã®ãã£ããç»é¢ã¨PHP製ã®ãµã¼ãã¹ã¯ãªããã«ãªã£ã¦ãã¾ãããµã¼ããPHPã³ãã³ãã§å®è¡ããã°å¾ã¯HTMLã表示ãããã ãã§ãã£ãããã§ããä»çµã¿ã§ããPHPããã°ã©ãã¼ã«ã¨ã£ã¦ã¯ããæ軽ã«WebSocketã使ããããã«ãªãã®ã§ã¯ãªãã§ããããããªãã½ã¼ã¹ã«æ大æ¥ç¶æ°ã¯100ã¨è¨å®ããã¦ãã¾ãã PHPWebSocket Chatã¯PHP製ã®ã½ããã¦ã§ã¢ï¼ã½ã¼ã¹ã³ã¼ãã¯å ¬éã
intro ãªãã ããã WebSocket ã使ã£ã¦ãã®ã«ã WebSocket ãµã¼ããèªåã§æ¸ãããã¨ãç¡ãã£ãã®ã§ãRFC ãè½ã¡çãã¦ãããããã§ãä»æ§ãèªã¿ãªããå®è£ ãã¦ã¿ããã¨æãã¾ããã "WebSocket ãµã¼ã å®è£ " ã¨ãã§ã°ã°ãã¨ã Socket.IO ã¨ã pywebsocket 㧠WebSocket ã¢ããªä½ã£ã¦ããWebSocket ãµã¼ããå®è£ ãã¿ãããªã¿ã¤ãã«ã«ãªã£ã¦ããã¨ãå¤ãã¿ããã§ããã (Apache ã« PHP 㧠HelloWorld ãã¦ããHTTP ãµã¼ãå®è£ ãã¾ãããã¨ã¯è¨ããªãããã) ãã®è¨äºã§ã¯ã WebSocket ãããã³ã«ãããã¹ããµã¼ãèªä½ãå®è£ ãã¾ãã ã¨ãã£ã¦ããå ¨é¨ããã®ã¯ã¡ãã£ã¨å¤§å¤ã ã£ãã®ã§ãåºæ¬çãªããã¹ãã¡ãã»ã¼ã¸ã®ããã¨ãã®é¨åã ããã£ã¦ãã¨ã³ã¼ãµã¼ããã§ããã¨ããã¾ã§ããã¾ããã å®æçã®ã½ã¼ã¹ã¯ä»¥ä¸ã§
彼女ã¨MacBookã並ã¹ã¦ã³ã¼ãã£ã³ã°ã ããããRailsã®éçºãä¸äººã§åºæ¥ãããã«ãªã£ã彼女ãã俺ã«çªç¶è³ªåãæããããã ããããWebãµã¼ãã¹ã®Pushã£ã¦ã©ããã£ã¦å®è£ ããã®ï¼ã ãä¸è¬çã«ã¯ï¼ã¤ã®æ¹æ³ãããããã¨ä¿ºã¯çããã ãã¯ã¼ã«ãªé ã«WebSocketã次ã«ã³ã¡ãããæå¾ã«ãã¼ãªã³ã°ã ãã 彼女ã¯ç®ãè¼ãããªãããããã§ããã§ï¼ï¼ãã¨èª¬æãæ±ãã¦ããã ããã¼ãªã³ã°ã¯ãä¸å®ã®æéãã¨ããã¨ãã°ï¼ç§ãã¨ã«Ajaxã§ãµã¼ãã«ãªã¯ã¨ã¹ããéã£ã¦æ°çã®æ å ±ãç¡ããåãåããã¦ãããæ°çãããã°å¦çãããªããã°ã¹ã«ã¼ãã¦æ¬¡ã®åãåããã«åããPushéç¥ã®å®è£ ã ãæ軽ã«å®è£ ã§ããåé¢ãæ°çããªãå¤ãã®æé常ã«ãªã¯ã¨ã¹ããéãç¶ãããã¨ã«ãªãã®ã§ç¡é§ãå¤ãã大è¦æ¨¡ãªãµã¼ãã¹ã§å®è£ ããã°ãããã ãã§DDoSã£ã½ããªã£ã¡ãããã¾ãããªã¢ã«ã¿ã¤ã ãå³å¯ã«ã¯å®ç¾ã§ããªãã¦ãMAXã§ãã¼ãªã³
ãããä¸ã§çæ´»ä¿è·ãããã話ãã親ã¨åã®é¢ä¿ã®è©±ã«è©±é¡ãã¨ã³ãããã«ãé ã®ãããã«ã¤ãã¦ã®è©±é¡ã«ããªã£ã¦ããã®ã§ãã¼ããã¡ãã£ã¨æ¸ãã¦ã¿ãã DQNã®æè²åé¡ã«ã¤ãã¦ãã¾ãã¯ããããDQNã§ããã¨ããã㨠- ã¯ã¦ãªã®é´¨æ¾¤ ç°å¢ã¨ããè¶³æ· - G.A.W. ãé ããããã¨ã¯ã©ããããã¨ãã ããã¯ã¡ã¾ãã§ãåå¼·ã§ãããã¤ãé ãããã¨ã¯éããªããã¨ããè¨èã§ããåå¼·ãã§ããâ é ããããã¨ãããµãã«èªèããã¦ãããã¼ããããè¨ããããããããã大å¦åºã¦ãã®ã«ããããªãã¨ãã§ããªãã®ï¼ç¥ããªãã®ï¼ãã ããããé ããããã£ã¦ä¸ä½ãªããªãã ãã¨ãããã¨ã«ãªãã äºã¤ã®ãé ã®ãããââï¼ï¼ï¼ãå¦è çã«é ãããã ãé ããããã«ã¯äºã¤ããã ä¸ã¤ã¯ãå¦è çã«é ããããã¨ãããã¨ã ããä¸ã¤ã¯ããã¡ã®ãªã¤ã¸çã«é ããããã¨ãããã¨ã çµè«ããå ã«ããã°ãåè ã¯æ¦å¿µãä½ç³»åã§ããè½åã§ãããå¾è ã¯ç®çã
å»å¹´PHPã§å®è£ ããWebSocketãµã¼ãã¼ã«ã¤ãã¦æ¸ãã¾ãããããã©ã¦ã¶ã®ãã¼ã¸ã§ã³ãä¸ãããå 容ãå¤ããªã£ã¦ããã®ã§ã2012å¹´1æ2æ¥ä»ç¾å¨ã®ãã©ã¦ã¶ã§åãããæ¹ãã¦æ¸ãã¦ã¿ããã¨æãã¾ãã ååã¨ãã©ã¦ã¶ä»¥å¤ã¯å¤ããã¾ããããä»åã¯ãããªç°å¢ã§åããã¾ãã ãããã®VPS CentOS PHP 5.3.6 Chrome 17.0.942.0 dev-m Firefox 8.0 release channel Safari 5.0.2 iPhoneã®mobile Safari iOS5.0.1 â»ãµã¼ãã¼å´ã®Websocketç¨ãã¼ãéæ¾ãå¿ããã«ã ä»åã®æçµç®æ¨ã¯ä¸è¨ãã©ã¦ã¶ãã¹ã¦ã§åä½ãããªã¢ã«ã¿ã¤ã ãçµµãããã¼ã«ãä½ãäºã«ãã¾ãã ã¾ãã¯åããã¦ã¿ã æé ã©ã¤ãã©ãªãªã©ãé ç½®ãã¦ã²ã¨ã¾ããã¢ç¨ã®ãã£ããã¢ããªã±ã¼ã·ã§ã³ãåããã¦ã¿ã¾ãããããªæé ã§é²ãã¦ããã¾ãã Web
Redmine, git, Jenkins ãªã©ããã¸ã§ã¯ã管çãã¼ã«ã®ç¶æ ã横æçãã¤ãªã¢ã«ã¿ã¤ã ã«è¡¨ç¤ºããWebã¢ããªãDashbozuããä½ãã¾ããã ããã使ãã°ãä¸ã¤ã®ç»é¢ã§ããã¸ã§ã¯ãã®âä»âã®ç¶æ ãææ¡ã§ãã¾ãã WebSocketãç¨ãã¦ããã®ã§ããã éãã¦ããã ãã§ã次ã ã¨æ å ±ãå¾ããã¨ãã§ãã¾ãã iPadã§éãã£ã±ãªãã«ãã¦ãæºã®ä¸ã«ç½®ãã¦ãããããªä½¿ãæ¹ãæ³å®ãã¦ãã¾ãã ãªããããä½ã£ãã ä¸è¬çãªã½ããã¦ã§ã¢éçºç¾å ´ã§ã¯ Redmineã§ãã±ãããä½æãã gitã§ã³ããããç¹°ãè¿ããä¸å¤®ã¬ãã¸ããªã«pushãã Jenkinsã«ããCIãå®è¡ããã çµæã確èªããRedmineã®ãã±ãããéãã ã¨ããæµãã§ä½æ¥ãé²ãã§ããã¾ãã ãããã®ä½æ¥ã®ä¸ã§ãéçºè ã¯ãé©åãªãã¿ã¤ãã³ã°ã§ãã§ãã¯ã¨ãã£ã¼ãããã¯ããããã¨ãæ±ãããã¾ãã ä¾ãã°ããã§ãã¯ã®ã¿ã¤ãã³ã°
é·ãè¨äºãªã®ã§ãå ã«çµè«ã ãæ¸ãã¦ããã¾ããWebSocketã®ãã¤ããªã¡ãã»ã¼ã¸æ©è½ã¯ãããã¾ã§ã®ã¤ã³ã¿ã¼ãããã®ããæ¹ãã²ã£ããè¿ãã¾ããããããªã®ç¥ã£ã¦ãããã¨ããæ¹ãããã¨ã¯æãã¾ããåãçå±ã§ã¯åãã£ã¦ãã¤ããã ãã©ãå®éã«ã¢ããªãä½ã£ã¦ã¿ã¦ãå ·ä½çã«ãããæãããã¨ãã§ããã®ã§ãã¡ãã£ã¨é·ãã§ããã©ããããã¨ãªã®ã説æãã¦ã¿ã¾ãã WebSocketã¨ã¯ # WebSocketã¯ãHTML5é¢é£ã®ä¸ã§ãç¹ã«æ³¨ç®ãéãã¦ããæè¡ã®ä¸ã¤ã§ããé常ã®HTTPéä¿¡ã§ããã°ã¯ã©ã¤ã¢ã³ãããã®ãªã¯ã¨ã¹ããªãã«ãµã¼ãã¼ã¯å¿çãã¾ããããWebSocketã使ããã¨ã§ã¯ã©ã¤ã¢ã³ãã¨ãµã¼ãã¼ã®éã§åæ¹åã®éä¿¡ãå¯è½ã¨ãªãã¾ãããããå©ç¨ãããã¨ã§ãä»å¾æ§ã ãªãªã¢ã«ã¿ã¤ã æ§ã®é«ããµã¼ãã¹ãæ§ç¯ãããã¨ãå¯è½ã«ãªãã§ãããã ãããªWebSocketã§ãããããã¾ã§æ³¢ä¹±ã®éãæ©ãã§ãã¾ãããæ°å¹´åã
WebSocket ãå©ç¨ããã¢ããªã±ã¼ã·ã§ã³ãä½ãéã«ãåä½ç¢ºèªãç ©éãªå ´åãããã¾ãã ãµã¼ãå´ã¨ã¯ã©ã¤ã¢ã³ãå´ãã©ã¡ããå®è£ ããå¿ è¦ããã£ã¦ããã¡ãã£ã¨ãã®é¨åã ãåããã¦ã¿ãããªããã£ã¦ããã¨ãã«ãç°¡åã«è©¦ãæ¹æ³ãããã¨ä¾¿å©ã§ãããï¼ ãããªã¨ãã«ãããããªã®ãã wscat ã§ãã wscat ã¯ãã³ãã³ãã©ã¤ã³ã§å©ç¨ã§ãã WebSocket ã®ãµã¼ã/ã¯ã©ã¤ã¢ã³ãã§ãws ã«å梱ããã¦ãã¾ãã ws ã¨ã¯ã Node.js ä¸ã§ WebSocket ã使ãããã®ã¢ã¸ã¥ã¼ã«ã§ãSocket.IO ãengine.io ã®å é¨ã§ãå©ç¨ããã¦ããä»æ³¨ç®ã®ãããã¯ãã§ãã ä»åã¯ããã® wscat ã®ä½¿ãæ¹ããç´¹ä»ãã¾ãã 対象ãã¼ã¸ã§ã³ ws (0.4.7) ã¤ã³ã¹ãã¼ã« Node.js ã®ã¢ã¸ã¥ã¼ã«ãªã®ã§ã npm ã§ã¤ã³ã¹ãã¼ã«ããã®ãç°¡åã§ãã $ npm install -
次ä¸ä»£ã®Webã¢ããªã±ã¼ã·ã§ã³ã®ä¸æ ¸ãæ ãæè¡ã¨ãã¦ãHTML5ãã«æ³¨ç®ãéã¾ã£ã¦ããããããã¨ä¸¦ãã§æå¾ ããã¦ããæè¡ã«ãWebSocketããããã IETFã¨W3Cã«ãã£ã¦ä»æ§ã®çå®ãé²ãããã¦ãããæåã®ææ¡ä»¥æ¥å¹¾åº¦ãã®æ¹è¨ãçµã¦ã2011å¹´12æ11æ¥ã«ãã®ãããã³ã«ä»æ§ãRFCã®Proposed Standardï¼RFC 6455ï¼ã¨ãªã£ãã AjaxããCometãããã¦WebSocket㸠WebSocketã¯ã¦ã§ããµã¼ãã¨ãã©ã¦ã¶ãç´æ¥ã³ãã¯ã·ã§ã³ãå¼µã£ã¦åæ¹åéä¿¡ããããã®æè¡è¦æ ¼ã§ãããHTTPã¨ã¯ç°ãªãç¬èªã®è»½éãããã³ã«ã«ãã£ã¦éä¿¡ãè¡ãããããªã¼ãã¼ããããå°ãããé·æéã«æ¸¡ã£ã¦éä¿¡ããå ´åã§ãHTTPã³ãã¯ã·ã§ã³ãå æããå¿ è¦ããªãã¨ããã¡ãªãããããã WebSocketãçã¾ããèæ¯ã«ã¯ããµã¼ãã¨ãã©ã¦ã¶ããã£ã¨ãªã¢ã«ã¿ã¤ã ã«éä¿¡ãã¦æ å ±ã®é ä¿¡ãæ´æ°ãè¡ã
WebSocketã«é¢ããããããã質åãç¥ã£ã¦ãããã»ãããããããªãã¨ãã¾ã¨ãã¦ã¿ã¾ããã æè¡çãªãã¨ã«ã¤ãã¦ã¯æ·±ãã¯ãµãã¦ãã¾ããã ããã¾ããããã°ææãã¦ãã ããã Q. ä»æ§ã2ã¤ããã¿ããã ãã©... A. WebSocketã¯ã主ã«ãã©ã¦ã¶ä¸ã§ä½¿ããã¨ãèæ ®ãããéä¿¡ã®è¦æ ¼ã§ãéä¿¡ã®ããããã³ã«ãã¨JavaScriptãã使ãããã®ãAPIãã«ä»æ§ããããã¦ãã¾ããåè ã¯ãWebSocket Protocolãã¨ãã¦ãIETFãããå¾è ã¯ãWebSocket APIãã¨ãã¦ãW3Cãããããã£ã¦ãã¾ãã Q. WebSocketã£ã¦ã¾ã ä»æ§ãåºã¾ã£ã¦ãªãããããªãã®? A. WebSocket Protocolã¯IETFã®RFCã®ãæ¨æºåææ¡ãã«ãWebSocket APIã¯W3Cã®ãå§ååè£ãã«ãªãã¾ãããIETFã«ãW3Cã«ãæ¿èªããã»ã¹ããããããããæå¾ã«ã¯ãæ¨æº
WebSocket ãã12æ12æ¥ã«ã¤ãã«RFCã«ãªãã¾ããï¼RFC6455)ãããã¹ã転éã ãã§ãªãããã¤ããªã¼è»¢éããµãã¼ããããã³ãã¯ã·ã§ã³ããã¼ãããããã® ping/pongãªã©ã³ã³ããã¼ã«ãã¬ã¼ã ãå®ç¾©ããã¾ãããrfcã«ãªãéç¨ã§æ§ã ãªãã¼ã¸ã§ã³ã¨ããã®å®è£ ç³»ãåºã¦ãã¾ãã®ã§ãããã®ãã´ã·ã¨ã¼ã·ã§ã³ã®ä»çµã¿ãå ¥ã£ã¦ãããã以åã¯å²ã¨èªç±ã«ä½¿ãããã ã£ã subprotocolããIANAã«ã¬ã¸ã¹ãã¬ã¼ã·ã§ã³ãå¿ è¦ã«ãªã£ããã¨ããªããªããã£ãããããããã³ã«ã«ä»ä¸ãã£ã¦ããå°è±¡ã§ãã ãã¦ãä»å¹´æå¾ã¨ãªããä»æ¥ã®ãã¹ãã§ã¯ããã®WebSocketã«ãããä»å¾ã®Webã¯ã©ããªã£ã¦ããã®ãã«ã¤ãã¦ãåãæè¿æãã¦ããå¦æ³ãæ¸ãé£ãã¦ã¿ã¾ãã WebSocketã¨ã¯ããã£ããä½ãªã®ãï¼ ãã¦ãWebSocketã¨ã¯ããã£ããä½ãªã®ã§ããããï¼ãã®åã«å¯¾ãã¦ãä¸è¬çã«ã¯ã Webã§P
ã¯ããã« ãã©ã¦ã¶éã§P2Péä¿¡ãå®ç¾ã§ããã°ããã©ã¦ã¶ä¸ã§åä½ããP2Pã¢ããªãä½ãã¦é¢ç½ããã ãªã¼ã¨æã£ãã®ã§WebSocketã使ã£ã¦å®ç¾ãã¦ã¿ã¾ãããä»çµã¿ã«ã¤ãã¦ã¯ä»¥ä¸ã§èª¬æãã¦ããã¾ãããç§ãå®ç¾ããæ¹æ³ã¯éå®çã§å®ç¨æ§ãä½ãè²ã ã¨è¶³ããªãé¨åãããã®ã§ã軽ãæ°æã¡ã§èªãã§é ããã¨ãããããã§ãw ä»çµã¿ã®æ¦è¦ ãªãWebSocketã使ãã®ã å¾æ¥ãWebãµã¼ãã¨ã¯ã©ã¤ã¢ã³ã(Webãã©ã¦ã¶)éã§éåæã«éä¿¡ããã«ã¯XHR(XMLHttpRequest)ãç¨ãã¦ãã¾ãããåºæ¬çã«ãã®XHRã¯ä»¥ä¸ã®å³ã®ããã«åä¸ãã¡ã¤ã³ã¨ããéä¿¡ã§ããªãã¨ããå¶ç´ãããã¾ããã*1 ããããWebSocketã®the Origin-based security modelã§ã¯ç°ãªããã¡ã¤ã³ã¨ãéä¿¡ãããã¨ãå¯è½ã«ãªãã¾ããWebSocketãããã³ã«ã§ã¯ããµã¼ãã¨ã¯ã©ã¤ã¢ã³ãéã§æ¥ç¶ã確ç«ãã
風éªå¼ãã¦ãã£ã½ãã¦é çã¨åãæ°ãã²ã©ãã®ã§ãããæ¨æ¥ä½ã£ãã³ã¼ãç½®ãã¦ããã¾ã GitHub - mizchi-sandbox/node-rss-reader: LDRã£ã½ãRSSãªã¼ãã¼ http://w-mtlab.com:2000 ã«ãµã³ãã«ãç½®ãã¦ããã¾ã ããã¯å(mizchi)ã®æªèªã§ã (å ±éã®æªèªç®¡çãã©ã°ä½¿ã£ã¦ãã®ã§ã誰ããèªãã§ãã¾ã£ã¦ãã¨èªãã¾ãã) ã³ã¼ãç·æ°ã¯600è¡ããããªã®ã§ããµã³ãã«ã«ã¯ãªãã¨æãã¾ããããªã³ããããã°ã®åæ®ã大éã«æ®ã£ã¦ã¾ãã⦠æåã¯ã»ã¼LDRã®jksaoã®ã¯ãã¼ã³ã§ãããã¦ã¹ãªãã¬ã¼ã·ã§ã³ã¯ãµãã¼ããã¦ãã¾ããã zappa.jsã¨Knockout.jsã¨websocketã®ç·´ç¿ãã¦ãä½ãã¾ããã knocout.js使ã£ã¦ã¿ãææ³ knockout.jsããã£ã(å°å¦ç並ã¿ã®ææ³) ããã風éªå¼ãã¦é æªãã®ã§å¾æ¥ãã¬ã¼ã ã¯ã¼ã¯ã®ææ³
æ¬æ æéããªãã®ã§èµ°ãæ¸ãåå¿é²ã失æã¨ã³ããªã§ãã Github ã§ä½¿ããã¦ãããdefunkt/jquery-pjax · GitHub ãã«ããã«è©±é¡ã«ãªã£ã¦ãèªåãé¢ç½ãã¨æã£ã¦ãã¾ãã ã§ããã®å¦çèªä½ã¯ pjax ã使ãã¨é常ã«ç°¡åã«åºæ¥ã¦ãã¾ããã§ããã ä¸èº«ãå°ãè¦ã¦ããããã£ãã®ã¨ã ããäºèªä½ã«æå³ãæããã©ããã¯å¥ã¨ãã¦ã ããã¨åããããªãã¨ã WebSocket ã§ãã§ããªããã¨æã£ã¦è©¦ãã¦ã¿ã¾ããã (ãªã¢ã«ã¿ã¤ã 㪠Web ã§ãã©ã£ã㧠URI æ¯ãããæããªãã¯ãªãã) ajax 㨠pushState ãã£ãã説æããã¨ã æè¿ã®ãã©ã¦ã¶ã¯ history.pushState history.popState history.replaceState ã¨ãã API ããã£ã¦ããã使ãã¨ãã¹ããªã¼(ãã©ã¦ã¶ã®å±¥æ´)ã JS ããå¤æ´ã§ãã¾ãã ããã使ã
2. â¾èªâ¼°å·±ç´¹ä» ! â¯ååï¼kadoppe ! â¯Twitter  twitter.com/kadoppe ! â¯Blog  www.kadoppe.net ! â¯è·æ¥ï¼ããªã¼ã©ã³ã¹ã¨ã³ã¸ã㢠! iOS,  Webï¼Rails,  CakePHP,  Node.jsï¼ ! â¯HTML5-âââWest.jp  ã³ã¢ã¡ã³ãã¼ ! about.me/kadoppe 2
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}