Ajax Server Push
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ ¹®¼­´Â Ajax¸¦ ÀÌ¿ëÇÑ IRC À¥Å¬¶óÀÌ¾ðÆ® ±¸ÇöÀ» Áö¿øÇϱâ À§ÇÑ ¸ñÀûÀ¸·Î ÀÛ¼ºµÇ¾ú´Ù.

À§ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ´Ù º¸´Ï, °¡Àå °í¹ÎÀÌ µÇ´Â ºÎºÐÀÌ Push¹æ½ÄÀ¸·Î ÇÒ°ÍÀÎÁö ¾Æ´Ï¸é, Refresh ¹æ½ÄÀ¸·Î ÇÒ°ÍÀÎÁö¸¦ ¼±ÅÃÇÏ´Â °Å¿´´Ù. ÃÖÃÊ¿¡´Â Refresh ¹æ½ÄÀ¸·Î ¼±ÅÃÀ» Çß¾ú´Ù. ±¸ÇöÀÌ ºñ±³Àû °£´ÜÇϱ⠶§¹®ÀÏ °Å¶ó´Â »ý°¢¿¡¼­ ¿´´Âµ¥, ´ÙÀ½°ú °°Àº ¹®Á¦°¡ ¹ß»ýÇß´Ù. ±âÁ¸¿¡ ¾Ë·ÁÁø ¹®Á¦µéÀÌ´Ù.
  1. ÆäÀÌÁö°¡ °»½ÅµÇ¹Ç·Î, ¸¶¿ì½º Æ÷Ä¿½º¸¦ ÀÒ¾î ¹ö¸°´Ù.
  2. ¸¶¿ì½º Æ÷Ä¿½º¸¦ ÀÒ¾î¹ö¸®´Â°Í ÀÚü´Â ±×´ÙÁö ¹®Á¦°¡ µÇÁö ¾Ê´Â´Ù°í »ý°¢µÉ ¼ö Àִµ¥, º¹»çÇϱâ À§Çؼ­ ¸¶¿ì½º·Î ±Ü¾úÀ»¶§ ¹®Á¦°¡ µÈ´Ù. Ctrl+v¸¦ ´©¸£±âÀü¿¡ ÆäÀÌÁö°¡ °»½ÅµÇ¾î ¹ö¸®´Â °æ¿ì°¡ ¹ß»ýÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
  3. ÀæÀº ¿¬°á°ú Á¾·á°¡ ¹ß»ýÇϴµ¥, ÀÌ´Â À¥¼­ºñ½ºÀÇ ¼º´ÉÀ» ÀúÇϽÃŰ´Â ÁÖ¿ä¿äÀÎÁß Çϳª´Ù.
  4. Ŭ¶óÀÌ¾ðÆ®°¡ ÀÏÁ¤ÁÖ±â·Î µ¥ÀÌÅ͸¦ °¡Á®¿À´Â ¹æ¹ýÀ» »ç¿ëÇϱ⠶§¹®¿¡, ½Ã°£°£°ÝÀÌ »ý±ä´Ù. äÆÃ°ú °°Àº ½Ç½Ã°£¼ºÀÌ Áß¿äÇÑ ¼­ºñ½º¿¡´Â ÀûÇÕÇÑ ¹æ¹ýÀÌ ¾Æ´Ï´Ù.

multipart/x-mixed-replace ¸¦ ÀÌ¿ëÇÑ Ajax Push

´ÙÇàÈ÷µµ ajax´Â content type À» multipart/x-mixed-replace ¸¦ ÀÌ¿ëÇÑ ¼­¹ö push¸¦ Áö¿øÇÑ´Ù. À̰ÍÀ» ÀÌ¿ëÇϸé, ¼­¹ö¿Í ¿¬°áÀ» À¯ÁöÇÑü, ÄÁÅÙÃ÷¸¦ °´Ã¼´ÜÀ§·Î ÇØ¼­ µ¥ÀÌÅ͸¦ Àоî¿Ã ¼ö ÀÖ´Ù. ÄÁÅÙÃ÷¸¦ °´Ã¼´ÜÀ§·Î º¼ ¼ö ÀÖ´Ù´Â °ÍÀº ²Ï³ª Áß¿äÇÑ »çÇ×ÀÌ´Ù. ¿Ö³ÄÇϸé ÀϹÝÀûÀÎ HTTPÀÀ¿ëÀº ÆäÀÌÁö¸¦ ÇϳªÀÇ °´Ã¼´ÜÀ§·Î º¸´Âµ¥, ÀÌ·¸°Ô µÉ°æ¿ì ¿¬°áÀ» ½ÃÀÛÇØ¼­ ¿¬°áÀÌ ²÷¾îÁö±â ±îÁö ±â´Ù·Á¼­ Àϰý 󸮸¦ Çϱ⠶§¹®ÀÌ´Ù.

ajax push¶ó°í ÇØ¼­, ±âÁ¸ÀÇ ÄÚµå¿Í Å©°Ô ´Þ¶óÁú°ÍÀº ¾ø´Ù. ±×³É multipart ÄÁÅÙÃ÷¸¦ ´Ù·ê °ÍÀ̶ó°í ¸í½ÃÇØÁֱ⸸ ÇÏ¸é µÈ´Ù.
001  <script language="JavaScript" type="text/javascript"> 
002  function handleContent (event)
003  {
004    var result = event.target.responseText;
005    document.all.BlogComment.innerHTML = result;
006  }
007  
008  function request ()
009  {
010    var xrequest = new XMLHttpRequest ();
011    xrequest.multipart = true;
012    xrequest.open ("GET","http://www.joinc.co.kr/ajax/multipart.php",false);
013    xrequest.onload = handleContent;
014    xrequest.send (null);
015    delete xrequest;
016  }
017  
018  </script>
019  
11¹øÂ°ÁÙ¿¡¼­ xreques.multipart °¡ true·Î ¼³Á¤µÇ¾î ÀÖ´Â °Í ¿Ü¿¡´Â ±âÁ¸ÀÇ poll¹æ½ÄÀÇ ajax ÄÚµå¿Í ´Ù¸¥Á¡ÀÌ ¾øÀ½À» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.

¾Æ·¡ ¹öưÀ» Ŭ¸¯Çϸé Å×½ºÆ® °á°ú¸¦ È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

´ÙÀ½Àº À§ÀÇ Å×½ºÆ®¸¦ À§ÇÑ ¼­¹öÃø ÇÁ·Î±×·¥À¸·Î php·Î ÀÛ¼ºµÇ¾ú´Ù.
001  <?
002    header('Content-type: multipart/x-mixed-replace;boundary="rn9012"');
003  
004    for($i = 0; $i < 10; $i++)
005    {
006      print "--rn9012\n";
007      print "Content-type: plan/text\n\n";
008      print "Part $i<br>\n";
009      print "--rn9012\n";
010      flush();
011      sleep(1);
012    }
013  ?>
014  
content-typeÀ» multipart/x-mixed-replace·Î Á¤ÀÇ Çß´Ù. ÄÁÅÙÃ÷ ´ÜÀ§·Î ±¸ºÐÇϱâ À§Çؼ­ boundary ¸¦ »ç¿ëÇϰí ÀÖ´Ù. ÀÌ boundary ¿¡ Á¤ÀÇµÈ ¹®ÀÚ¿­·Î ÄÁÅÙÃ÷°¡ ±¸ºÐÀÌ µÈ´Ù.
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.