XMPP 3920 ×î¿¿Æ×µÄÖÐÎÄ·­ÒëÎĵµ ÏÂÔØ±¾ÎÄ

×ÊÔ´±êʶ·ûÊÇÒ»¸ö¿ÉÑ¡µÄµÚÈýλ±êʶ·û£¬Î»ÓÚÓò±êʶ·ûÖ®ºó£¬ºó¸ú¡®/¡¯×÷Ϊ·Ö¸ô·û¡£×ÊÔ´±êʶ·û¿ÉÒÔÐÞ¸Ä< [url=mailto:node@domain]node@domain[/url]>Ò²¿ÉÒÔÖ»ÊǵØÖ·¡£Ëüͨ³£±íʾ Ò»¸öÌØ±ðµÄ»á»°¡¢Á¬½Ó£¨ÀýÈ磺һ¸öÉ豸»òλÖã©£¬»òÊôÓÚ´øÓнڵã±êʶ·ûµÄ¶ÔÏó£¨ÀýÈ磺ÔÚ¶àÓû§ÁÄÌìÊÒµÄÒ»¸ö²ÎÓëÕߣ©¡£µ±Ìṩ±ØÒªµÄÐÅÏ¢À´Íê³É×ÊÔ´°ó¶¨£¨µÚ 7½Ú£©Ê±£¬×ÊÔ´±êʶ·û¶Ô·þÎñÆ÷ÓëÆäËü¿Í»§¶Ë¾ù²»Í¸Ã÷£¬²¢ÇÒÓɿͻ§¶ËʵÏÖÀ´¶¨Ò壬ÒÔºó£¬Ëü×÷Ϊһ¸ö¡°ÒÑÁ¬½Ó×ÊÔ´¡±²Î¿¼¡£ÊµÌå¿ÉÄÜͬʱά»¤¶àÁ¬½Ó£¬Ã¿¸öÒÑÁ¬½Ó µÄ×ÊÔ´¾ùÓÉ×ÊÔ´±êʶ·ûÀ´½øÐÐÇø±ð¡£

×ÊÔ´±êʶ·û±ØÐë°´Resourceprep profile of [STRINGPREP]¸ñʽ»¯£¬²ÅÄÜÎÞ´íÓ¦ÓᣱȽÏÁ½¸ö×ÊÔ´±êʶ·ûǰ£¬·þÎñÆ÷±ØÐ루¿Í»§¶ËÓ¦¸Ã£©Ê×ÏÈΪÿ¸ö±êʶ·ûÓ¦ÓÃResourceprep profile¡£ 3.5 ¾ö¶¨µØÖ·

SASLЭÉ̺󣨵Ú6½Ú£©£¬Èç¹ûÕýÈ·£¬×ÊÔ´°ó¶¨£¨µÚ7½Ú£©£¬Á÷½ÓÊÕʵÌ屨Ðë¾ö¶¨³õʼʵÌåµÄJID¡£

Èç¹ûSASLЭÉÌ£¨µÚ6½Ú£©ÆÚ¼äδָ¶¨ÊÚȨÉí·Ý£¬¶Ô·þÎñÆ÷Óë·þÎñÆ÷¼äµÄͨÐÅ£¬³õʼʵÌåµÄJIDÓ¦µ±±»ÊÚȨÉí·Ý£¬ÅÉÉúÓÚÈÏÖ¤Éí·Ý£¬ÔÚSASL£¨Simple Authentication and Security Layer¼òµ¥ÊÚȨÓ밲ȫ²ã£©ËµÃ÷[SASL]Öж¨Òå¡£

Èç¹ûSASLЭÉÌ£¨µÚ6½Ú£©ÆÚ¼äδָ¶¨ÊÚȨÉí·Ý£¬¶Ô¿Í»§¶Ëµ½·þÎñÆ÷µÄͨÐÅ£¬¡°bare JID¡±£¨<[url=mailto:node@domain]node@domain[/url]>£©Ó¦¸Ã±»ÊÚȨÉí·Ý£¬±»ÅÉÉúÓÚÊÚȨÈÏÖ¤£¬ ¶¨ÒåÔÚ[SASL]¡£ÔÚ×ÊÔ´°ó¶¨ÆÚ¼ä£¨µÚ7½Ú£©¡°full JID¡±

£¨<[url=mailto:node@domain/resource]node@domain/resource[/url]& gt;£©µÄ×ÊÔ´±êʶ·û²¿·ÖÓ¦µ±Êǿͻ§¶ËÓë·þÎñÆ÷¼äЭÉ̵Ä×ÊÔ´±êʶ·û¡£

½ÓÊÕʵÌ屨ÐëÈ·±£½á¹ûJID£¨°üÀ¨½áµã±êʶ·û£¬Óò±êʶ·û£¬×ÊÔ´±êʶ·û£¬·Ö¸ô·û£©×ñ´Ó´Ë½ÚÖÐÇ°ÃæËù¶¨ÒåµÄ¹æÔòÓë¸ñʽ£»ÎªÂú×ã´ËÏÞÖÆ£¬½ÓÊÕʵÌå¿ÉÄÜÐèÒªÌæ´úÓɽÓÊÕʵÌåËù¾ö¶¨µÄ¹æ·¶µÄJID³õʼʵÌåËù·¢Ë͵ÄJID¡£ XMPP 3920 ×î¿¿Æ×µÄÖÐÎÄ·­ÒëÎĵµ£¨¶þ£© XMLÁ÷ 4.1¸ÅÊö

ʹpresence-awareʵÌå¼äÄܹ»Ï໥ѸËٵġ¢Òì²½½»»»Ïà¹ØµÄС¸ºÔصĽṹ»¯ÐÅÏ¢ÓÐÁ½ÖÖ»ù±¾ÔªËØ£ºXMLÁ÷ÓëXML½Ú¡£ÊõÓﶨÒåÈçÏ£º

XMLÁ÷¶¨Ò壺XMLÁ÷ÊÇÒ»¸öÈÝÆ÷£¬ÓÃÓÚÍøÂçÉÏÈÎÒâÁ½ÊµÌå¼ä½»»»XMLÔªËØ¡£XMLÁ÷µÄ¿ªÊ¼ÊÇÒÔÒ»¸öÆðʼµÄXML±ê¼Ç£¨ÓÐºÏ ÊʵÄÊôÐÔÓëÃüÃû¿Õ¼äÉùÃ÷£©±íʾ£¬XMLÁ÷µÄ½áβÒÔÒ»¸ö½áÊøµÄXML±ê¼Ç±íʾ¡£ÔÚÁ÷µÄÉúÃüÖÜÆÚÖУ¬³õʼ»¯ËüµÄʵÌåÄܹ»Í¨¹ýÁ÷ ·¢Ëͼ«¶àµÄXMLÔªËØ£¬ÔªËØÓëXML½Ú£¨¶¨ÒåÔÚ´Ë£¬, , »ò ÔªËØÓÉȱʡÃüÃû¿Õ¼äÑéÖ¤£©¶¼ÓÃÓÚЭÉÌÁ÷£¨Àý£ºÐ­ÉÌʹÓÃTLS£¨µÚ5½Ú£©»òʹÓÃSASL£¨µÚ6½Ú£©£©¡£¡°³õʼÁ÷¡±ÊÇ´Ó³õʼʵÌ壨ͨ³£ ÊÇÒ»¸ö¿Í»§¶Ë»ò·þÎñÆ÷£©µ½½ÓÊÕʵÌ壨ͨ³£ÊÇÒ»¸ö·þÎñÆ÷£©µÄЭÉÌ£¬²¢±»¿´×÷Óë´Ó³õʼʵÌåµ½½ÓÊÕʵÌåµÄ»á»°Ò»Ö¡£³õʼÁ÷ÄÜ´Ó³õʼʵÌåµ½½ÓÊÕʵÌåµ¥ÏòͨÐÅ£»ÎªÁË Äܹ»´Ó½ÓÊÕʵÌåµ½³õʼʵÌåµÄÐÅÏ¢½»»»£¬½ÓÊÕʵÌ屨ÐëÔÚ·´·½ÏòЭÉÌÒ»¸öÁ÷£¨¡°ÏìÓ¦Á÷¡±£©¡£

XML½Ú¶¨Ò壺XML½ÚÊÇÒ»¸ö²»Á¬ÐøµÄ½á¹¹»¯ÐÅÏ¢ÓïÒåµ¥Ôª£¬Í¨¹ýXMLÁ÷´ÓÒ»¸öʵÌå·¢Ë͵½ÁíÒ»¸öʵÌå¡£XML½ÚÒÔ¸ùµÄÖ±½Ó×Ó²ã´æÔÚ£¬Èç¹ûËüÆ¥Åä²úÆ·[43]ÄÚÈÝ[XML]£¬Ôò¿ÉÒÔºÜºÃµÄÆ½ºâ¡£

ÈκÎXML½ÚµÄ¿ªÊ¼¶¼ÓÉÉî¶ÈΪ1µÄXMLÁ÷£¨ÀýÈ磺£©µÄ¿ªÊ¼±ê¼ÇÔªËØÀ´Çå³þµÄ±íʾ£¬XML½ÚµÄ½áβÓÉÏàÓ¦µÄÉî¶ÈΪ1µÄ¹Ø ±Õ±ê¼ÇÀ´Çå³þµÄ±íʾ¡£Îª´«ËÍÏëÒªµÄÐÅÏ¢£¬Ò»¸öXML½Ú¿ÉÄܰüº¬±ØÒªµÄ×ÓÔªËØ£¨´øÓÐÊôÐÔ£¬ÔªËØ£¬XML×Ö·ûÊý¾Ý£©¡£Ôڴ˶¨ÒåµÄ½öÓеÄXML½Ú ÊÇ£¬£¬ÔªËØ£¬ÓÉÁ÷µÄȱʡÃüÃû¿Õ¼äÑéÖ¤£¬ÔÚXML½Ú£¨µÚ9½Ú£© ÖÐÃèÊö£»Îª´«Êä²ã°²È«£¨TLS£ºTransport Layer Security£©Ð­ÉÌ£¬SASLЭÉÌ£¬»ò·þÎñÆ÷»Ø½Ð£¨µÚ8½Ú£©¶ø·¢Ë͵ÄXMLÔªËØ£¬²¢²»»áµ±×÷XML½ÚÀ´¿¼ÂÇ¡£

¿¼ÂÇÒ»¸ö¿Í»§¶ËÓë·þÎñÆ÷µÄ»á»°Àý×Ó¡£ÎªÁËÁ¬½Óµ½·þÎñÆ÷£¬¿Í»§¶Ë±ØÐë³õʼ»¯Ò»¸öXMLÁ÷£º·¢ËÍÒ»¸öÆðʼµÄ±ê¼Ç¸ø·þÎñ£¬¿ÉÑ¡ÏÈÓÚ Ò»¸öÖ¸¶¨XML°æ±¾µÄÎı¾ÉùÃ÷Óë×Ö·û±àÂëÖ§³Ö£¨²Î¿¼Îı¾ÉùÃ÷µÄÄÚÈÝ£¨11.4£©£»Ò²¿É²Î¿¼×Ö·û±àÂ루11.5£©£©¡£·þ´Ó±¾µØ²ßÂÔÓëËùÌṩµÄ·þÎñ£¬·þÎñÆ÷½Ó ÏÂÀ´Ó¦¸Ã»Ø¸´ÁíÒ»¸öXMLÁ÷¸ø¿Í»§¶Ë£¬ÔٴοÉÑ¡ÏÈÓÚÒ»¸öÎı¾ÉùÃ÷¡£Ò»µ«¿Í»§¶ËÍê³ÉÁËSASLЭÉÌ£¨µÚ6½Ú£©£¬¿Í»§¶Ë¿ÉÒÔͨ¹ýÁ÷·¢Ëͼ«¶àµÄXML½Ú¸øÍøÂçÉÏ µÄÈÎÒâÈÝÆ÷¡£µ±¿Í»§¶ËÏë¹Ø±ÕÁ÷ʱ£¬Ëü¼òµ¥·¢ËÍÒ»¸ö¹Ø±Õ±ê¼Ç¸ø·þÎñÆ÷£¨Ò²¿ÉÒÔÓÉ·þÎñÆ÷À´¹Ø±ÕÁ÷£©£¬´ÓÕâÒԺ󣬿ͻ§¶ËÓë·þÎñÆ÷ ¶¼Ó¦ÖÕֹDZÔÚµÄÁ¬½Ó£¨Í¨³£ÊÇÒ»¸öTCPÁ¬½Ó£©¡£

ϰ¹ßÓÚ½«XML¿¼ÂdzÉÒÔÎĵµÎªÖÐÐĵÄÈË¿ÉÄÜÏ£Íû¿´µ½¿Í»§¶ËÓë·þÎñÆ÷µÄ»á»°×÷ΪÁ½¸öÄ©¶Ë¿ª¿ÚµÄ£¨×ÔÓɻشðµÄ£©XMLÎĵµµÄ×é³É²¿·Ö£ºÒ»¸ö´Ó¿Í»§¶Ëµ½·þÎñÆ÷£¬ ÁíÒ»¸ö´Ó·þÎñÆ÷µ½¿Í»§¶Ë¡£´ÓÕâ¸ö¹Ûµã¿´£¬¸ùÔªËØ¿É±»ÈÏΪÊÇÿ¸ö¡°Îĵµ¡±µÄÎĵµÊµÌ壬Á½¸ö¡°Îĵµ¡±¶¼ÓÉͨ¹ýÁ½¸öXMLÁ÷·¢ËÍ µÄXML½ÚµÄ¼¯¾ÛÀ´½¨Á¢¡£È»¶ø£¬ÕâÖÖ¹Ûµã½öÊÇÒ»ÖÖ·½±ã£»XMPP²¢²»ÒÔÎĵµ´¦Àí£¬¶øÊÇÒÔXMLÁ÷»òXML½ÚÀ´´¦Àí¡£

±¾ÖÊÉÏ£¬ÄÇô£¬Ò»¸öXMLÁ÷³äµ±ÁËËùÓÐͨ¹ý»á»°·¢Ë͵ÄXML½ÚµÄÐÅ·â¡£¿ÉÓÃͼ¼òµ¥±íʾÈçÏ£º

|--------------------| | | |--------------------| | | | | | | |--------------------| | | | | | | |--------------------| | | | | | | |--------------------| | ... | |--------------------| | | |--------------------|

4.2 °ó¶¨µ½TCP

ËäÈ»½«Ò»¸öXMLÁ÷½áºÏµ½Ò»¸ö[TCP]Á¬½ÓÉϲ»ÊDZØÐëµÄ£¨ÀýÈ磺Á½¸öʵÌåÄÜͨ¹ýÆäËüÖî

Èç[HTTP]ͶƱѡ¾Ù»úÖÆ¶ø±Ë´Ë»¥Á¬£©£¬´Ë˵Ã÷Ò²Ö»¶¨ÒåÁË XMPPµ½TCPµÄ°ó¶¨¡£ÔÚ¿Í»§¶Ëµ½·þÎñÆ÷¶ËͨÐŵÄÉÏÏÂÎÄÖУ¬·þÎñÆ÷±ØÐëÔÊÐí¿Í»§¶ËΪÁË´Ó¿Í»§¶Ëµ½·þÎñÆ÷Óë·þÎñÆ÷µ½¿Í»§¶ËµÄXML½Ú·¢Ë͹²ÏíµÄÒ»¸öµ¥ TCPÁ¬½Ó¡£ÔÚ·þÎñÆ÷µ½·þÎñÆ÷µÄͨÐÅÉÏÏÂÎÄÖУ¬·þÎñÆ÷±ØÐëʹÓÃÒ»ÌõTCPÁ¬½ÓÓÃÓÚ´Ó·þÎñÆ÷µ½Æä¶ÔµÈ·þÎñÆ÷µÄXML½Ú´«ËÍ£¬ÁíÒ»ÌõTCPÁ¬½Ó£¨ÓɶԵȳõʼ »¯£©ÓÃÓÚ¶ÔÆäµÈ·þÎñÆ÷µ½·þÎñÆ÷µÄXML½Ú´«ËÍ£¬×ܹ²ÓÐÁ½ÌõTCPÁ¬½Ó¡£

4.3 Á÷°²È«

µ±ÔÚXMPP1.0ÖÐЭÉÌXMLÁ÷ʱ£¬TLSÓ¦µ±°´TLSÓ¦Ó㨵Ú5½Ú£©Ëù¶¨ÒåµÄÀ´Ê¹Óã¬SASL±ØÐë°´SASL£¨µÚ6½Ú£©Ëù¶¨ÒåµÄÀ´Ê¹Óᣡ°³õʼÁ÷¡± £¨ÀýÈ磺´Ó³õʼʵÌåµ½½ÓÊÕʵÌåµÄÁ÷£©Óë¡°ÏìÓ¦Á÷¡±£¨ÀýÈ磺´Ó½ÓÊÕʵÌåµ½³õʼʵÌåµÄÁ÷£©±ØÐë±»·Ö±ð±£»¤£¬¼´Ê¹Ë«Ïò°²È«¿ÉÄÜÒÑͨ¹ýÏ໥µÄÈÏÖ¤»úÖÆËù½¨Á¢¡£ÊµÌå ²»Ó¦µ±ÔÚÁ÷±»ÈÏ֤֮ǰ£¬³¢ÊÔͨ¹ýÁ÷·¢ËÍXML½Ú£¨µÚ9½Ú£©£¬µ«Èç¹ûÕâÑù×öÁË£¬ÄÇô£¬ÆäËüʵÌå²»×¼½ÓÊÜ´ËÀà½Ú£¬²¢Ó¦µ±·µ»ØÒ»¸öÁ÷´íÎó£¬È»ºóÖÕÖ¹Á½¶ËµÄXMLÁ÷ÓëDZÔÚµÄTCPÁ¬½Ó£»×¢Ò⣬ÕâÖ»ÊÊÓÃÓÚXML½Ú£¨ÀýÈ磺, , ÔªËØ£¬ÓÉȱʡÃüÃû¿Õ¼ä¼ì²é£©²¢²»ÊÊÓÃÓÚÁ÷ЭÉÌ£¨ÀýÈ磺ÓÃÓÚЭÉÌʹÓÃTLS£¨µÚ5½Ú£©»òʹÓÃSASL£¨µÚ6½Ú£©£©µÄXMLÔªËØ¡£

4.4 Á÷ÊôÐÔ

Á÷ÔªËØÊôÐÔÈçÏ£º

1£© to¡ª¡® to¡¯ÊôÐÔÓ¦µ±½öÓÃÓÚ´Ó³õʼʵÌåµ½½ÓÊÕʵÌåµÄXMLÁ÷Í·ÖУ¬²¢ÇÒ±ØÐë±»Éè³ÉÒ»¸ö½ÓÊÕʵÌå·þÎñµÄÖ÷»úÃû¡£¡®to¡¯ÊôÐÔ²»Ó¦µ±ÉèÔÚ½ÓÊÕʵÌ廨Ӧ³õʼʵÌåµÄXMLÁ÷Í·ÖУ»È»¶ø£¬Èç¹û¡®to¡¯ÊôÐÔ°üÀ¨ÔÚÄÚ£¬ËüÓ¦µ±±»³õʼʵÌåĬĬºöÂÔ¡£

2£© from¡ª¡® from¡¯ÊôÐÔÓ¦µ±½öÓÃÓÚ´Ó½ÓÊÕʵÌåµ½³õʼʵÌåµÄXMLÁ÷Í·ÖУ¬²¢ÇÒ±ØÐë±»Éè³ÉÒ»¸ö½ÓÊÕʵÌå·þÎñµÄÖ÷»úÃû£¬´Ë½ÓÊÕʵÌåÕýÊÚȨ·ÃÎʳõʼʵÌå¡£¡®from¡¯Êô ÐÔ²»Ó¦ÔÚ³õʼʵÌå·¢Ë͵½½ÓÊÕʵÌåµÄÁ÷Í·ÖУ»È»¶ø£¬Èç¹û¡®from¡¯ÊôÐÔ°üÀ¨ÔÚÄÚ£¬ËüÓ¦µ±±»½ÓÊÕʵÌåºöÂÔ¡£ 3£© id¡ª¡® id¡¯ÊôÐÔÓ¦µ±½öÓÃÓÚ´Ó½ÓÊÕʵÌåµ½³õʼʵÌåµÄXMLÁ÷Í·ÖС£´ËÊôÐÔÊÇΨһһ¸öÓɽÓÊÕʵÌå´´½¨µÄ£¬×÷Ϊ³õʼʵÌåÁ÷Óë½ÓÊÕʵÌå¼ä»á»°µÄÃÜÔ¿£¬²¢ÇÒ£¬ÔÚ½ÓÊÕÓ¦Óà £¨Í¨³£ÊÇÒ»¸ö·þÎñÆ÷£©ÖÐÊÇΨһµÄ¡£×¢Ò⣺Á÷ID¿ÉÄÜÊÇÑϸñ°²È«µÄ£¬²¢ÇÒÒò´Ë±ØÐëÊǼ´²»ÄÜÔ¤²âÒ²²»ÄÜÖØ¸´µÄ£¨²Î¿¼[RANDOM]ÍÆ¼ö¹ØÓÚËæ»ú°²È«¹Ûµã£©¡£ ¡®id¡¯ÊôÐÔ²»Ó¦ÔÚ³õʼʵÌåµ½½ÓÊÕʵÌåµÄXMLÁ÷Í·ÖУ»È»¶ø£¬Èç¹û¡®id¡¯ÊôÐÔ°üº¬ÔÚÄÚ£¬Ó¦±»½ÓÊÕʵÌåºöÂÔ¡£

4£© xml:lang¡ª¡® xml:lang¡¯ÊôÐÔ£¨¶¨ÒåÔÚ[XML]µÄ12.2£©Ó¦µ±°üº¬ÔÚ³õʼʵÌåµÄ³õʼÁ÷Í·ÖУ¬