Ajax Chating ¼­ºñ½º Á¦ÀÛ 2ź
ÃÑ ÆäÀÌÁö ¼ö : 3224

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



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

À½.. IRC¸¦ ÀÌ¿ëÇØ¼­ Ajax äÆÃ ¼­¹ö¸¦ ¸¸µé¾îº¸·Á°í Çߴµ¥, ¾Æ¹«·¡µµ Á» º¹ÀâÇÑ °¨ÀÌ À־ Áß´ÜÇÏ°í °£´ÜÇÏ°Ô ¸¸µé¾î º¸±â·Î Çß´Ù. À̹ø¿¡´Â ±âÇÊÄÚ ¿Ï¼ºÇؾßÁö Èæ.. ÇÁ·ÎÅäÄݸ¸ IRC¸¦ »ç¿ëÇÏÁö ¾ÊÀ» »Ó ±âº» ±¸Á¶´Â µ¿ÀÏÇÏ°Ô °¡Á®°¥ °ÍÀÌ´Ù. Áï
  1. write ¿Í read¸¦ ºÐ¸®Çϰí
  2. write ´Â GET ¹æ½Ä, read´Â ¼­¹ö push ¹æ½Ä
À» »ç¿ëÇÒ °ÍÀÌ´Ù.

ä³Î Ư¼º

  • À¯Àú´Â ÇϳªÀÇ Ã¤³Î¿¡¼­ ´ëÈ­¸¦ ÇÒ ¼ö ÀÖ´Ù.
  • ä³Î°£ ´ëÈ­´Â Çã¿ëÇÏÁö ¾Ê´Â´Ù.
  • ä³Î³»¿¡¼­ÀÇ ±Ó¸»

¼­¹öÇÁ·Î±×·¥ ±¸¼º

À¯Àú·ÎºÎÅÍ µ¥ÀÌÅ͸¦ ÀоîµéÀÌ´Â read ¼­¹ö, ÀоîµéÀÎ µ¥ÀÌÅ͸¦ ä³ÎÀÇ À¯Àú¿¡°Ô º¸³»´Â write ¼­¹ö·Î ±¸¼ºµÈ´Ù.
      +-----------+       GET        +--------------+ 
      | Read      |<-----------------| Client       | 
  +---| Server    |                  | Web Browser  | 
  |   +-----------+                  +--------------+ 
  |   +-----------+  
  +-->| Channel   | 
      | Message   | 
  +---| Queue     |  
  |   +-----------+ 
  |   +-----------+  Server Push     +--------------+ 
  +-->| Write     |----------------->| Client       | 
      | Server    |                  | Web Broser   | 
      +-----------+                  +--------------+ 
 

Channel Message Queue ÀÇ ±¸Çö

Message Queue´Â ÆÄÀÏ·Î ±¸ÇöÇÒ °ÍÀ̸ç ȯÇüÅ¥ÀڷᱸÁ¶¸¦ °¡Áöµµ·Ï ÇÒ °ÍÀÌ´Ù. ¸Þ½ÃÁö´Â ÀÌ ÆÄÀÏ¿¡ °íÁ¤µÈ Recode ±æÀÌ·Î ½×ÀÌ°Ô µÈ´Ù. ÀÌ ÆÄÀÏÀÇ ±¸Á¶´Â ´ÙÀ½°ú °°´Ù.
  |<-- 4 -->|<---- 256 ----->| 
  +---------+----------------+----------------+    +----------------+ 
  | Header  | Message        | Message        |....| Message        |  
  +---------+----------------+----------------+    +----------------+ 
 
Header´Â ´ÙÀ½ÀÇ °ªÀ» °¡Áø´Ù.
  1. Index : ÇöÀç Àоî¾ßÇÒ ¸Þ½ÃÁöÀÇ À§Ä¡
  2. Size : queueÀÇ Å©±â
Message´Â À¯Àú°¡ ¾´ ¸Þ½ÃÁö·Î 256 byteÀÇ °íÁ¤±æÀ̸¦ °¡Áöµµ·Ï ÇÒ °ÍÀÌ´Ù. °íÁ¤±æÀÌ·Î ÇÑ ÀÌÀ¯´Â ¼øÀüÈ÷ ±ÍÂ÷´ÏÁò ¶§¹®ÀÌ´Ù.

HeaderÀÇ Index¿Í Size°ªÀ» ¾Ë°í ÀÖ´Ù¸é ȯÇüÅ¥´Â °£´ÜÈ÷ ±¸ÇöÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

ÀÌÁ¦ ¹®Á¦´Â »õ·Î¿î ¸Þ½ÃÁö°¡ µé¾î¿Ô´ÂÁö È®ÀÎÇϱâ À§Çؼ­ ¹Ù»Û´ë±â »óÅ¿¡ ³õÀÌÁö ¾Êµµ·Ï ÀåÄ¡¸¦ ¸¶·ÃÇÏ´Â °ÍÀÌ´Ù. ¿©±â¿¡¼­´Â record Àá±ÝÀ» ÀÌ¿ëÇÒ »ý°¢ÀÌ´Ù. °¢ MessageÀÇ Ã¹ byte¸¦ Àá±Ý¿µ¿ªÀ¸·Î »ç¿ëÇÒ °ÍÀÌ´Ù. Channel Message Queue·Î ºÎÅÍ µ¥ÀÌÅ͸¦ Àо´Â write ¼­¹ö ÇÁ·Î±×·¥Àº Àá±Ý¿¡¼­ ´ë±â¸¦ ÇÏ°Ô µÈ´Ù. Àá±ÝÀ» Ǫ´Â ¼­¹ö´Â read ¼­¹ö·Î Å¥¿¡ »õ·Î¿î ¸Þ½ÃÁö¸¦ Áý¾î ³Ö¾ú´Ù¸é ÇØ´ç ·¹Äڵ忡 ´ëÇÑ Àá±ÝÀ» Ç®°í ´ÙÀ½·¹Äڵ带 Àá±×°Ô µÈ´Ù.

read ¼­¹ö

À¯Àú·Î ºÎÅÍ µ¥ÀÌÅ͸¦ ÀоîµéÀÌ´Â ¼­¹öÇÁ·Î±×·¥ÀÌ´Ù. Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ HTTPÇÁ·ÎÅäÄÝÀÇ GETÀ» ÅëÇØ¼­ ³Ñ¾î¿Â µ¥ÀÌÅ͸¦ ÀоîµéÀδÙÀ½¿¡ ÀÌ Á¤º¸¸¦ ä³ÎÆÄÀÏ¿¡ append ÇÑ´Ù.

write ¼­¹ö

  • ä³Î´ç ÇϳªÀÇ Ã¤³Î thread¸¦ »ý¼º ÇÑ´Ù. ä³ÎÁ¤º¸¸¦ À¯ÁöÇϱâ À§ÇÑ ¾Æ·¡¿Í °°Àº °´Ã¼¸¦ »ý¼ºÇÑ´Ù. ºÎ¸ð¾²·¹µå´Â ä³Î¹øÈ£¸¦ Key·Î ÇÏ°í ¾Æ·¡ÀÇ °´Ã¼¸®½ºÆ®¸¦ value·Î ÇÏ´Â ¹è¿­À» À¯ÁöÇÑ´Ù.
    id ä³Î ID
    uid À¯Àú ID
    sid ¼ÒÄÏ ÁöÁ¤ÀÚ
    msgWrite sid·Î writeÇϱâ À§ÇÑ ¸Þ¼­µå
  • À¯Àú´Â äÆÃÀ» ÇÒ Ã¤³Î ID¸¦ °¡Áö°í HTTP ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇØ¼­ Á¢±ÙÇÑ´Ù.
  • ºÎ¸ð¾²·¹µå´Â À¯Àú°´Ã¼¸¦ »ý¼ºÇϰí ä³Î ¸ñ·Ï¿¡ Ãß°¡ÇÑ´Ù.
  • °¢°¢ÀÇ Ã¤³Î¾²·¹µå´Â ÀÚ½ÅÀÌ °ü¸®Çϴ ä³ÎÆÄÀÏ¿¡ »õ·Î¿î ¸Þ½ÃÁö°¡ Ãß°¡µÇ´Â Áö¸¦ È®ÀÎÇÑ´Ù. tailÀÇ °£´ÜÇÑ ÀÀ¿ëÀÌ´Ù.
  • ¸¸¾à »õ·Î¿î ¸Þ½ÃÁö°¡ Ãß°¡µÇ¾ú´Ù¸é, ä³Î.id.msgWrite ¸¦ ÀÌ¿ëÇØ¼­ À¯Àú¿¡°Ô ¸Þ½ÃÁö¸¦ Push ÇÑ´Ù.
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.