Comet·þÎñÆ÷ÍÆËÍÓëSignalR
HTTPÐÒéÊÇÒ»¸öµäÐ͵ÄRequest/ResponseÐÒ飬ÊÇ»ùÓÚTCP/IPÖ®ÉϵÄÒ»¸öÓ¦ÓòãÐÒ飬¸ÃÐÒé×îµäÐ͵ÄÌØµã¾ÍÊÇÎÞ״̬ÇÒÐèÒª¿Í»§¶Ë·¢ÆðRequest·þÎñ¶Ë²ÅÄܽøÐÐResponse£¬ÕâÒâζ×Å·þÎñ¶ËÎÞ·¨Ö÷¶¯¡°ÍÆËÍ¡±ÐÅÏ¢¡£µ«ÏÖ´úºÜ¶àÓ¦ÓÃÐèÇóÕâÖÖ¡°·þÎñ¶ËÍÆËÍ¡±£¬±ÈÈç˵¼à¿ØÏµÍ³¡¢±¨¼Ûϵͳ¡¢ÓÎÏ·¡¢ÐͬÎĵµ¡¢½ø¶ÈÌõµÈÓ¦Óá£Òò´Ë±¾ÎÄ»á̸ÂÛ·þÎñÆ÷ÍÆËͼ¼ÊõµÄ²»Í¬ÊֶΣ¬ÒÔ¼°ÔÚAsp.NetÖеÄSignalRÊÇÈçºÎ·â×°ÕâЩϸ½ÚÀ´´ïµ½ÍÆË͵ÄÄ¿µÄ¡£
ʵÏÖ·þÎñÆ÷ÍÆË͵ÄһЩÊÖ¶Î
ÓÉÓÚHTTPÐÒé²¢²»Ö§³Öȫ˫¹¤£¬Òò´ËĿǰ¶ÔÓÚ·þÎñÆ÷¡°ÍÆËÍ¡±µÄÊÖ¶ÎÒ²ÊǸù¾ÝHTTPÐÒéµÄÌØÐÔÍæÁ˺ܶàС»¨ÕС£µ«´óÌåÉÏ¿ÉÒÔ·ÖΪ¸ß¶Ë´óÆøµÄȫ˫¹¤ÀàºÍÂÔ΢trickyµÄ³¤ÂÖѯÀà¡£StreamingÀàͨ³£»áÓбȽ϶àµÄÏÞÖÆ£¬±ÈÈç˵¶Ôä¯ÀÀÆ÷µÄ°æ±¾ÒªÇó¡¢ÐèҪʹÓÃsliverlight»òflashµÈ²é¼þÀ´ÊµÏÖȫ˫¹¤µÈ¡£³¤ÂÖѯÀàÖ÷ÒªÊǰüÀ¨³¤ÂÖѯ»ò²»¼ä¶ÏAjaxÇëÇóµÈ¡£
Ajax¶¨ÆÚÇëÇó·½Ê½
ÕâÖÖ·½Ê½ÑϸñÀ´Ëµ²¢²»ËãÊÇ·þÎñÆ÷ÍÆËÍ£¬¶øÊǿͻ§¶ËÔÚÒ»¸ö±È½Ï¶ÌµÄ¼ä¸ôÄÚ¶¨ÆÚÈ¥·þÎñÆ÷ÓÃAjaxÇëÇóÐÅÏ¢£¬Èç¹û·þÎñÆ÷¶ËÓÐÁËеÄʼþ£¬Ôò¿Í»§¶ËÔÚÏÂÒ»´ÎÇëÇó¾Í»á»ñÈ¡µ½£¬²¢ÔÚ¿Í»§¶Ëµ÷ÓöÔÓ¦µÄ»Øµ÷º¯ÊýÀ´´¦ÀíÕâЩÐÅÏ¢¡£¼òµ¥µÄʾÒâͼÈçͼ1Ëùʾ¡£
ͼ1.Ajax¶¨ÆÚÇëÇó
µ±È»£¬ÕâÖÖ·½Ê½µÄһЩȱµãÒ²ÊÇÏÔ¶øÒ×¼ûµÄ£¬Ê×Ïȶ¨ÆÚ·¢ÆðÇëÇó»á°×°×ÏûºÄ·þÎñÆ÷×ÊÔ´£¬Æä´Î£¬ÕâÖÖ·½Ê½Ò²²¢²»ÊÇÕæÕýµÄ¡°ÊµÊ±¡±¡£
³¤Á¬½ÓµÄ·½Ê½
³¤Á¬½ÓÊÇÁíÒ»ÖÖ·½Ê½£¬ÊǶÔÓÚÒ³Ãæ¹ÒÆðÒ»¸ö¶îÍâµÄAjaxÇëÇ󣬵±·þÎñÆ÷ÓÐʼþ·¢Éúʱ£¬½«ÇëÇ󷵻ظø¿Í»§¶Ë£¬²¢ÔÚ´Ë¹ÒÆðÒ»¸ö³¤Á¬½Ó¡£´Ó¶ø±ÜÃâÁ˶¨ÆÚÇëÇóµÄËðºÄ£¬Èçͼ2Ëùʾ¡£
ͼ2.³¤Á¬½Ó·½Ê½
ÕâÖÖ·½Ê½µÄȱµãͬÑùÏÔ¶øÒ×¼û£¬¾ÍÊÇÐèÒª¿Í»§¶ËºÍ·þÎñÆ÷¶ÔÓÚÕⲿ·Ö¹¦ÄÜд×Ô¶¨ÒåʵÏÖ´úÂë¡£
ʹÓòå¼þ·½Ê½
ʹÓÃÖîÈçsilverlightºÍflashµÈ²å¼þ¿ÉÒÔ»ùÓÚsocket×öȫ˫¹¤µÄͨÐÅ£¬µ«ÕâÖÖ·½Ê½ÐèÒªÌØ¶¨µÄ¿Í»§¶Ë£¬¿çƽ̨ÐÔ²¢²»ºÃ£¨±ÈÈçÊÖ»ú¿Í»§¶ËµÈ²»Ö§³ÖһЩ²å¼þ£¬PC¶ËûÓÐԤװSilverlightµÈ£©¡£¶ÔÌõ¼þÏÞÖÆ±È½ÏÑϸñ¡£
Forever iFrame
ÕâÖÖ·½Ê½±¾ÖÊÉϺͳ¤Á¬½ÓµÄ·½·¨·Ç³£ÀàËÆ£¬¾ÍÊÇÔÚÒ³ÃæÖÐǶÈëÒ»¸öiframeÔªËØ£¬¸ÃÔªËØµÄSrcÊôÐÔÖ¸Ïò±»ÇëÇóµÄ¶ÔÏ󣬷þÎñ¶ËÓÐʼþ·¢Éú¾Í£¬¾Í»Ø´«Ò»¸öµ÷Óÿͻ§¶ËJS·½·¨µÄJS¡£IframeÖÐHTTPÍ·µÄTransfer-EncodingÊôÐÔΪchunked£¬ÕâÒâζ×Å·þÎñ¶Ë²¢²»ÖªµÀÒª·¢Ë͸ø¿Í»§¶Ë¶àÉÙÊý¾Ý£¬Ò²¾ÍÒþʽÒâζןÃÁ¬½ÓµÄ³¤¶ÈΪÎÞÏÞ¡£
HTML5 Web Socket
WebSocketÊÇHTML5¿ªÊ¼ÌṩµÄÒ»ÖÖä¯ÀÀÆ÷Óë·þÎñÆ÷¼ä½øÐÐȫ˫¹¤Í¨Ñ¶µÄÍøÂç¼¼Êõ¡£ WebSocketͨÐÅÐÒéÓÚ2011Äê±»IETF¶¨Îª±ê×¼ RFC 6455£¬WebSocketAPI±»W3C¶¨Îª±ê×¼¡£
ÔÚWebSocket APIÖУ¬ä¯ÀÀÆ÷ºÍ·þÎñÆ÷Ö»ÐèÒª×öÒ»¸öÎÕÊֵ͝×÷£¬È»ºó£¬ä¯ÀÀÆ÷ºÍ·þÎñÆ÷Ö®¼ä¾ÍÐγÉÁËÒ»Ìõ¿ìËÙͨµÀ¡£Á½ÕßÖ®¼ä¾ÍÖ±½Ó¿ÉÒÔÊý¾Ý»¥Ïà´«ËÍ¡£
WebSocketÐÒéµÄ³öÏÖ¿ÉÒÔ±ÜÃâÉÏÊö¼¸ÖÖ·½Ê½´øÀ´µÄ·þÎñÆ÷×ÊÔ´Õ¼ÓÃºÍ¿í´øÕ¼Óᣵ«È±µãÒ²ÊǺÜÃ÷ÏԵģ¬¶Ô¿Í»§¶ËºÍ·þÎñ¶Ë¶¼ÓÐÒ»¶¨ÒªÇ󣬰üÀ¨ä¯ÀÀÆ÷µÄ°æ±¾ºÍ·þÎñÆ÷µÄ°æ±¾£¨±ÈÈçIIS7.5+£©
SignalR£¿
ÉÏÃæËµµ½ÁËÕâô¶àÖÐʵÏÖʵʱӦÓóÌÐòµÄ°ì·¨£¬×÷ΪAsp.net¿ò¼ÜÖУ¬ÌṩÁËÒ»¸ö½ÐSignalRµÄ¿ò¼ÜÀ´·â×°ÕâÐ©ÍøÂçϸ½Ú£¬SignalR»á×Ô¶¯Ñ¡ÔñºÏÊʵÄʵÏÖ¼¼ÊõÀ´ÊµÏÖ¸ÃÖÖʵʱ³ÌÐò¡£ÎÒÃÇÖ»Òª¹Ø×¢¸ü¸ß²ãÃæµÄÒµÎñʵÏÖ£¬¶øÎÞÐè¹Ø×¢¼¼ÊõÉϵÄʵÏÖϸ½Ú¡£
SignalR×îµÍÐèÒª»ùÓÚJquery 1.6.4£¬ÔÚ·þÎñ¶ËÖÁÉÙÐèÒªÊÇ.Net FrameWork 4.0+¡£
ʹÓÃSignalR»á×Ô¶¯¸ù¾Ý»·¾³Ñ¡ÔñºÏÊʵÄÍøÂçʵÏÖϸ½Ú£¬¸Ã¹ý³Ì¸ù¾Ý΢ÈíµÄ¹ÙÍø¶¨ÒåÈçÏ£º
- Èç¹ûä¯ÀÀÆ÷ÊÇIE8»òµÍÓÚIE8£¬Ê¹Óó¤Á¬½Ó·½Ê½¡£
- Èç¹ûÅäÖÃÁËJSONP²ÎÊý£¬ÔòʹÓó¤Á¬½Ó·½Ê½¡£
- Èç¹ûÇëÇó¿çÓò£¬ÇÒ¿Í»§¶ËºÍ·þÎñÆ÷¶Ë¶¼Ö§³ÖWeb Socket£¬ÇÒ¿Í»§¶ËÖ§³ÖCORS£¬ÔòʹÓÃWeb Socket
- Èç¹ûû¿çÓò£¬¿Í»§¶ËºÍä¯ÀÀÆ÷¶¼Ö§³ÖµÄ»°£¬Ê¹ÓÃWeb Socket·½Ê½
- Èç¹û¿Í»§¶Ë»ò·þÎñÆ÷¶Ë²»Ö§³ÖWeb SocketµÄ»°£¬»áʹÓÃHTML5µÄServer-sent events
- Èç¹ûServer-Sent Event²»±»Ö§³ÖµÄ»°£¬»áʹÓÃForever iFrame
- ×îºó»áʹÓó¤Á¬½Ó·½Ê½
SignalRµÄʵÏÖ¿ÉÒÔͨ¹ýÔÚVisual StudioµÄnugetÀ´»ñÈ¡¡£SignalR´ÓʹÓõĽǶÈÀ´ËµÄ£Ðͷdz£¼òµ¥£¬·þÎñ¶ËÊǿͻ§¶Ë»Øµ÷ÓõÄHUB·½·¨£¬¶ø¿Í»§¶ËÖ»ÒªÒýÈëÁ˶ÔÓ¦µÄJSÖ®ºó£¬ÐγÉHub-Proxy£¬Ê¹µÃ·þÎñ¶Ë±»µ÷ÓúóÀïµÄ·½·¨Ò²¿ÉÒԻص÷²»Í¬µÄ¿Í»§¶Ë¡£Ä£Ð͸ÅÄîÈçͼ3Ëùʾ¡£
ͼ3.SignalRµÄHubÄ£ÐÍ
ÔÚ·þÎñ¶ËµÄHub±»µ÷Óúó£¬ÎÒÃÇ¿ÉÒÔ´¦Àí¸Ã²¿·Ö´úÂ룬²¢Õë¶Ô²»Í¬µÄ¿Í»§¶Ë·µ»ØÐÅÏ¢£¬Ò»¸öµäÐ͵ĴúÂëÈçͼ4Ëùʾ¡£
ͼ4.һЩ·µ»Ø¸ø²»Í¬¿Í»§¶ËµÄ·½·¨
¶øÔÚ¿Í»§¶Ë£¬ÎÒÃǽö½öÐèÒªÒýÓÃSignalRµÄJsÎļþºó£¬ÉùÃ÷ÁËHub-Proxy£¬¾Í¿ÉÒÔÖ±½Óµ÷Ó÷þÎñÆ÷·½·¨£¬Èçͼ5Ëùʾ¡£
ͼ5.¿Í»§¶ËÖ±½Óµ÷Ó÷þÎñ¶ËµÄ·½·¨
ÎÒÃÇ×¢Òâµ½£¬ÔÚʹÓÃSignalRµÄ¹ý³ÌÖУ¬²¢Ã»ÓÐÈκιØÓÚÍøÂç½»»¥¼¼Êõϸ½ÚµÄʵÏÖ£¬½ö½öÊǼòµ¥µÄµ÷Óá£SignalRÒѾ°´ÕÕ±¾ÎÄ֮ǰËùÌáµ½µÄÄÇÑù£¬¸ù¾ÝContextÑ¡ÔñµÄ¾ßÌåµÄʵÏÖϸ½Ú¡£
ÍÆ¼öÐÅÏ¢
- ¹¹½¨¸ß¿ÉÓú͵¯ÐÔÉìËõµÄKV´æ´¢ÏµÍ³
- Ì¸Ì¸ÍøÕ¾¾²Ì¬»¯£¨¶þ£©
- Ì¸Ì¸ÍøÕ¾¾²Ì¬»¯£¨Ò»£©
- Ðì¹úÏ飺΢²©ÊÇ·ñ»á²ÎÓëÍøÕ¾ÅÅÃû
- ApacheÔÚ±¾µØ½¨Á¢·ºÓòÃûÐéÄâÖ÷»ú¼ò·¨
- ÈçºÎ½øÐÐÍøÕ¾Õï¶Ï ÎªÍøÕ¾½øÐÐÆÀ·Ö
- Ò»¸ö³É¹¦µÄÕ¾³¤Ó¦¸Ã¾ß±¸µÄËØÖÊ
- Ò»Ìõ΢²©Òý·¢µÄ·ÖÎö£ºÈçºÎÈÃ΢²©µÃµ½¹ã·º´«²¥
- ÈçºÎÈÃÒ»¸öÍøÕ¾ÓÐÇ¿´óÉúÃüÁ¦
- פ×ãIDCÃż÷³Ö±Ò¹ÛÍû Õ¾³¤Ñ¡¹º¿Õ¼ä³É¡°¼èÄѵľö¶¨¡±£¿
ÈÈÃÅÐÅÏ¢
- nohup: redirecting stderr to stdou....
- ʹÓÃlog_formatΪNginx·þÎñÆ÷ÉèÖøüÏêϸµÄÈÕÖ¾¸ñʽ
- jquery easyUI--dataGrid-Json
- [Ô´´]·ÂGoogle Reader¡¢ÐÂÀË΢²©¡¢ÌÚѶ΢²©µ....
- ÀûÓÃKeepalived+mysql¹¹½¨¸ß¿ÉÓÃMySQLË«Ö÷×Ô¶....
- Nginx+keepalivedʵÏÖ¸ºÔؾùºâºÍË«»úÈȱ¸¸ß¿ÉÓÃ
- jqueryʵÏÖÒ³Ãæ¼ÓÔØ½ø¶ÈÌõ
- Rolling cURL: PHP²¢·¢×î¼Ñʵ¼ù
- codeigniter ·ÓÉÖÕ¼«ÓÅ»¯(url rewrite)
- linuxÏÂÉèÖÃsshÎÞÃÜÂëµÇ¼
ÆÀÂÛ