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

ZT0iT0E2TUc5dEVRR20yaGgiLGNub25jZT0iT0E2TUhYaDZWcVRyUmsiLG5j

PTAwMDAwMDAxLHFvcD1hdXRoLGRpZ2VzdC11cmk9InhtcHAvZXhhbXBsZS5vcmciLHJlc3BvbnNlPWQzODhkYWQ5MGQ0YmJkNzYwYTE1MjMyMWYyMTQzYWY3LGNoYXJzZXQ9dXRmLTgK ½âÂëÏìÓ¦ÊÇ£º

username=\ nonce=\ nc=00000001,qop=auth,digest-uri=\ response=d388dad90d4bbd760a152321f2143af7,charset=utf-8 ²½7£ºServer2·¢ËÍÁíÒ»¸ö[BASE64]±àÂëÌôÕ½¸øServer1£º cnNwYXV0aD1lYTQwZjYwMzM1YzQyN2I1NTI3Yjg0ZGJhYmNkZmZmZAo= ½âÂëÌôÕ½ÊÇ£º

rspauth=ea40f60335c427b5527b84dbabcdfffd ²½7£¨Ìæ»»£©£ºServer2·µ»Ø´íÎó¸øServer1£º

²½8£ºServer1ÏìÓ¦ÌôÕ½£º

²½8£¨Ìæ»»£©£ºServer1ÖÕֹЭÉÌ£º

²½9£ºServer2֪ͨServer1³É¹¦ÈÏÖ¤£º

²½9£¨Ìæ»»£©£ºServer2֪ͨServer1ÈÏ֤ʧ°Ü£º

²½10£ºServer1³õʼ»¯Ò»¸öÐÂÁ÷¸øServer2£º

xmlns='jabber:server'

xmlns:stream='http://etherx.jabber.org/streams' to='example.com' version='1.0'>

²½11£ºServer2ͨ¹ý·¢ËÍÒ»¸öÁ÷Í·ÏìÓ¦Server1£¬²¢°éËæ×ÅÆäËüÌØÕ÷£¨»ò¿ÕÌØÕ÷ÔªËØ£©£º

xmlns='jabber:client'

xmlns:stream='http://etherx.jabber.org/streams' from='example.com' id='s2s_345' version='1.0'>

7£®×ÊÔ´°ó¶¨

½ÓÊÕʵÌåSASLЭÉÌ£¨6£©Ö®ºó£¬³õʼʵÌå¿ÉÄÜÏëÒª»òÊÇÐèÒª°ó¶¨Ò»¸öÌØÊâ×ÊÔ´ÖÁÄǸöÁ÷¡£ÆÕͨµÄ£¬Õâ½öÓÃÓÚ¿Í»§¶Ë£ºÎªÁË×ñ´ÓÔÚ´ËÖ¸¶¨µÄѰַ¸ñʽ£¨3£©Óë½Ú´« Ë͹æÔò£¨10£©£¬±ØÐëÓÐÒ»¸ö×ÊÔ´±êʶ·ûÁªºÏ¿Í»§¶ËµÄ£¨¼´¿ÉÒÔÓÉ·þÎñÆ÷²úÉúÒ²¿ÉÒÔÓɿͻ§Ó¦ÓÃÌṩ£©£»ÕâÈ·±£»ùÓÚÁ÷ʹ ÓõĵØÖ·ÊÇ¡°È«JID¡±ÐÎʽ¡£

¸ù¾ÝÔÚSASLЭÉÌÖнÓÊÕµÄÒ»¸ö³É¹¦Ö¸Ê¾£¬¿Í»§¶Ë±ØÐë·¢ËÍÒ»¸öÐÂÁ÷Í·¸ø·þÎñÆ÷£¬·þÎñÆ÷±ØÐëÓÿÉÀûÓÃÁ÷ÌØÕ÷ÁбíÖеÄÄÚÈÝÀ´ÏìÓ¦¡£ÌرðµÄ£¬Èç¹û·þÎñÆ÷ÐèÒª¿Í»§ ¶ËÔÚSASL³É¹¦Ð­É̺󣬽«×ÊÔ´°ó¶¨µ½Á÷ÉÏ£¬Ëü±ØÐë°üÀ¨Ò»¸öÓÉÔÚÁ÷ÌØÕ÷ÁбíÖеÄ

'urn:ietf:params:xml:ns:xmpp-bind'Ãü Ãû¿Õ¼äÏÞ¶¨µÄ¿ÕÔªËØ¡£³É¹¦SASLЭÉ̺󣨲»ÊÇǰ£©£¬Ëüͨ¹ý·¢ËÍÏìÓ¦Á÷µÄÍ·±íʾ¸ø¿Í»§¶Ë£º

·þÎñÆ÷¹ã¸æ×ÊÔ´°ó¶¨ÌØÕ÷¸ø¿Í»§¶Ë£º

xmlns='jabber:client'

xmlns:stream='http://etherx.jabber.org/streams' id='c2s_345' from='example.com' version='1.0'>

¸ù¾ÝÕâÑùµÄ֪ͨ£¬×ÊÔ´°ó¶¨ÊÇÐèÒªµÄ£¬¿Í»§¶Ë±ØÐë¿¿Ë͸ø·þÎñÆ÷Ò»¸ö°üº¬ÓÉ'urn:ietf:params:xml:ns:xmpp-bind' ÃüÃû¿Õ¼äÏÞ¶¨µÄ£¬ÀàÐÍ¡°set¡±£¨²Î¿¼IQÓïÒ壨9.2.3£©£©µÄIQ½Ú£¬½«×ÊÔ´°ó¶¨µ½Á÷ÉÏ¡£

Èç¹û¿Í»§¶ËÏ£ÍûÔÊÐí·þÎñÆ÷´ú±í×Ô¼º²úÉú×ÊÔ´±êʶ·û£¬Ëü·¢ËÍÒ»¸öÀàÐÍ¡°set¡±µÄIQ½Ú£¬°üº¬Ò»¸ö¿ÕÔªËØ£º

¿Í»§¶ËÇëÇó·þÎñÆ÷°ó¶¨×ÊÔ´£º

Ö§³Ö×ÊÔ´°ó¶¨µÄ·þÎñÆ÷±ØÐëÄÜ´ú±íÒ»¸ö¿Í»§¶Ë²úÉúÒ»¸ö×ÊÔ´±êʶ·û¡£ÓÉ·þÎñÆ÷²úÉúµÄ×ÊÔ´±êʶ·û±ØÐë¶ÔÊÇΨһµÄ¡£Èç¹û¿Í »§¶ËÏ£ÍûÖ¸¶¨×ÊÔ´±êʶ·û£¬Ëü·¢ËÍÒ»¸öÀàÐÍΪ¡°set¡±µÄIQ½Ú£¬°üº¬ËùÐè×ÊÔ´µÄ±êʶ·û£¬×÷ÎªÔªËØ×ÓÔª ËØµÄXML×Ö·ûÊý¾Ý¡£

¿Í»§¶Ë°ó¶¨Ò»¸ö×ÊÔ´£º

someresource

Ò»µ©·þÎñÆ÷Ϊ¿Í»§¶Ë²úÉúÁËÒ»¸ö×ÊÔ´±êʶ·û»òÊǽÓÊÜÁËÓɿͻ§¶ËÌṩµÄ×ÊÔ´±êʶ·û£¬Ëü±ØÐë·µ»ØÒ»¸öÀàÐÍΪ¡°result¡±µÄIQ½Ú¸ø¿Í»§¶Ë£¬±ØÐë°üº¬Ò»¸ö×ÓÔªËØ£¬À´Îª·þÎñÆ÷¾ö¶¨µÄÒÑÁ¬½Ó×ÊÔ´Ö¸¶¨È«JID£º

·þÎñÆ÷֪ͨ¿Í»§¶Ë³É¹¦×ÊÔ´°ó¶¨£º

somenode@example.com/someresource

·þÎñÆ÷Ó¦µ±½ÓÊÜÓɿͻ§¶ËÌṩµÄ×ÊÔ´±êʶ·û£¬µ«¿ÉÄÜÓÃÒ»¸ö·þÎñÆ÷²úÉúµÄ×ÊÔ´±êʶ·û¸²¸ÇËü£»ÔÚÕâÖÖÇé¿ö£¬·þÎñÆ÷²»Ó¦µ±·µ»ØÒ»¸ö½Ú´íÎó £¨Àý£º£©¸ø¿Í»§¶Ë£¬È¡¶ø´úÖ®£¬Ó¦µ±ÒÔÒÔÉÏÏÔʾµÄIQ½á¹û£¬´«´ï²úÉúµÄ×ÊÔ´±êʶ·û¸ø¿Í»§¶Ë¡£

µ±¿Í»§¶ËÌṩһ¸ö×ÊÔ´±êʶ·û£¬ÒÔϽڴíÎóÌõ¼þÊÇ¿ÉÄܵģ¨²Î¿¼½Ú´íÎó£¨9.3£©£©£º 1£© ÌṩµÄ×ÊÔ´±êʶ·û²»Äܱ»ÓëResourceprep£¨¸½Â¼B£©Ò»ÖµķþÎñÆ÷´¦Àí¡£

2£© ¿Í»§¶Ë²»ÔÊÐí°ó¶¨×ÊÔ´µ½Á÷ÉÏ£¨Àý£ºÒòΪ½áµã»òÓû§ÒѾ­´ïµ½ÁËÔÚ±»ÔÊÐíµÄÁ¬½ÓµÄ×ÊÔ´µÄÊýÄ¿£©¡£

3£© ÒÑÌṩ×ÊÔ´±êʶ·ûÒѾ­Ê¹Ó㬵«·þÎñÆ÷²¢²»ÔÊÐíÓÃͬÑùµÄ±êʶ·û°ó¶¨¶àÁ¬½Ó×ÊÔ´¡£

ÓÃÓÚÕâЩ´íÎóÌõ¼þµÄЭÒéÏÔʾÈçÏ¡£

×ÊÔ´±êʶ·û²»Äܱ»´¦Àí£º

someresource