±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcsdn£¬½éÉÜÁËMQTTÐÒ鼰һЩʹÓ÷¶Àý×öÒÔ¼ò½é,Èÿª·¢ÈËÔ±Á˽⵽ÈçºÎ°²×°ÔËÐÐÕâÒ»ÐÒé¡£ |
|
MQTT £¨Message Queuing Telemetry Transport£¬ÏûÏ¢¶ÓÁÐÒ£²â´«Ê䣩
ÊÇÒ»ÖÖ±ê×¼»¯µÄ·¢²¼/¶©ÔÄÏûÏ¢´«ÊäÐÒ飬Éè¼ÆÓÚ1999Ä꣬×î³õÊÇΪÁËÔÚÎÀÐÇÖ®ÀàµÄÎïÌåÉÏʹÓá£ËüÊÇÒ»¸ö·Ç³£ÇáÁ¿¼¶µÄÐÒ飬ÓÉÓÚ¶Ô´ø¿íÐèÇóºÜµÍ£¬´Ó¶ø³ÉΪÁË
M2M ͨÐÅ»òÎïÁªÍøÓ¦ÓõÄÀíÏëÑ¡Ôñ£¬ÏÖÔÚÒѾ³ÉΪÕâÀೡ¾°×î³£¼ûµÄÐÒéÖ®Ò»¡£
±¾ÎÄ»á¶Ô¸ÃÐÒ鼰һЩʹÓ÷¶Àý×öÒÔ¼ò½é£¬ËäȻû´òËãд³É MQTT µÄ×ÛºÏÐԲο¼Ö¸ÄÏ£¬µ«»áÌṩ×ã¹»µÄÐÅÏ¢£¬Èÿª·¢ÈËÔ±Á˽⵽ÈçºÎ°²×°ÔËÐÐÕâÒ»ÐÒé¡£Èç¹ûÏëÒª¸üÉîÈëµØÁ˽⣬¿ÉÒԲο¼HiveMQ Ëù·¢²¼µÄϵÁÐÎÄÕ¡£
·¢²¼/¶©ÔÄ
·¢²¼/¶©ÔÄ£¬Í¨³£Ò²±»³ÉΪ pub-sub ģʽÊÇ MQTT µÄºËÐÄ£¬³ýÁË»ùÓÚͬһ¸öÏûÏ¢´úÀíµÄ·¢²¼ÕߺͶ©ÔÄÕßÖ®Í⣬»¹ÓÐһЩÆäËü½ÚµãÎ§ÈÆ×ŸÃÏûÏ¢´úÀí³ÊÐÇÐÍÍØÆË·Ö²¼¡£Õâ¸öÄ£ÐÍÓë±ê×¼µÄ¿Í»§¶Ë/·þÎñÆ÷åÄÈ»²»Í¬£¬Ò»¿ªÊ¼¿´ËÆÓÐÐ©Ææ¹Ö£¬µ«ËüÌṩµÄÈ¥ñîÄÜÁ¦ÔںܶàÇé¿ö϶¼Óо޴óµÄÓÅÊÆ¡£
¿Í»§¶Ë¿ÉÒÔ·¢²¼»ò¶©ÔÄÌØ¶¨µÄÖ÷Ì⣨topic£¬ÓÐЩÀàËÆÐÅÏ¢Ö÷Ì⣩£¬¸ù¾ÝʹÓÃËüÃǵÄÏûÏ¢´úÀíÀ´¾ö¶¨Ë»áÊÕµ½ÐÅÏ¢¡£MQTT
µÄÖ÷ÌâÓÐÌØ¶¨µÄÓï·¨£¬Ê¹ÓÃб¸Ü£¨/£©×÷Ϊ·Ö¸ô·û£¬ÕûÌå³Ê²ã´Î½á¹¹£¬·Ç³£ÀàËÆ URL ÖеÄ·¾¶¸ñʽ£¬Òò´Ë³ø·¿ÖеÄζȴ«¸ÐÆ÷Ò²Ðí»á·¢²¼µ½ÀàËÆ¡°sensors/temperature/home/kitchen¡±
ÕâÑùµÄÖ÷Ìâ¡£
ÎÒÃÇ¿´Ò»¸öÀý×Ó£ºÏëÏóÒ»ÏÂÓÐÒ»¸öÍøÂ磬½«È«ÊÀ½çµÄζȴ«¸ÐÆ÷Á¬½ÓÆðÀ´£¬Ìá¹©ÆøÏó·þÎñ¡£ËùÓÐÕâЩ´«¸ÐÆ÷±£³ÖÓëij¸öÏûÏ¢´úÀíÖмä¼þÏàÁ¬½Ó£¬Ã¿¸ô10·ÖÖÓ±¨¸æÒ»´Îµ±Ç°µÄζȡ£ËûÃÇ»ùÓÚ×ÔÉíλÖð´ÕÕÏÂÃæµÄ¸ñʽÏòÌØ¶¨Ö÷Ìâ·¢²¼ÐÅÏ¢£º
sensors/temperature/{country}/{city}/{street name}
ÄÇôÔÚÂ׶ر´¿Ë½Ö£¨Baker Street£©µÄij¸ö´«¸ÐÆ÷¾Í»áÏò¡°sensors/temperature/uk/london/baker_street¡±·¢²¼Ò»Ìõ°üº¬µ±Ç°Î¶ȵÄÐÅÏ¢¡£

MQTT ʾÀýÍØÆË
ÆøÏó·þÎñÐèÒª±£Ö¤ÀúʷζÈÊý¾Ý¿âµÄÊý¾Ý×îУ¬Òò´Ë´´½¨Á˶©Ôĵ½ MQTTÖ÷ÌâµÄÊý¾Ý¿â·þÎñ£¬Êý¾Ý¿â·þÎñ»áÔÚÊÕµ½×îÐÂζÈÐÅϢʱ·¢³öÌáʾ¡£²»¹ýÕâÀï´æÔÚÒ»¸öÎÊÌ⣺Êý¾Ý¿â·þÎñÐèÒªÁ˽⵽ȫÊÀ½çËùÓеÄζȴ«¸ÐÆ÷£¬¶ø½«Ã¿¸ö´«¸ÐÆ÷¶©Ôĵ½¶ÀÁ¢µÄÖ÷Ìâ»á·Ç³£¸´ÔÓ£¬ÐÒºÃ
MQTT ÓÐÏàÓ¦µÄ½â¾ö·½°¸£ºÍ¨Åä·û£¨wildcards£©¡£
ͨÅä·û
ÔÚ MQTT ÖÐÓÐÁ½¸ö¿ÉÓõÄͨÅä·û£¬·Ö±ðÊÇ+ºÍ#£¬+±íʾƥÅäµ¥Ò»²ã¼¶ÖеÄÈÎÒâÖ÷Ì⣬#±íʾƥÅäÈÎÒâÊýÁ¿µÄ²ã´Î¡£Òò´ËÔÚÈ«ÇòζÈÊý¾Ý¿âÖпÉÄÜ»áÓж©Ôĵ½
sensors/temperature/# µÄ·þÎñ£¬ËüÄÜ´ÓÈ«ÊÀ½çµÄÈκÎÒ»¸ö´«¸ÐÆ÷½ÓÊÕζȶÁÊý¡£µ«Èç¹ûÓ¢¹úÕþ¸®ÏëÒªÔÚ×Ô¼ºµÄζȷþÎñÖÐÀûÓÃÕâЩÊý¾Ý£¬Ö»Òª¶©Ôĵ½
sensors/temperature/uk/# £¬¾Í¿ÉÒÔÏÞÖÆ·¶Î§£¬Ö»½ÓÊÜÓ¢¹úµÄ´«¸ÐÆ÷¶ÁÊý¡£Èç¹ûij¸ö·þÎñÏëÒª½ÓÊÕij¸öÌØ¶¨Î»ÖÃËùÓÐÀàÐ͵Ĵ«¸ÐÆ÷Êý¾Ý£¬¿ÉÒÔʹÓÃÀàËÆÕâÑùµÄ¸ñʽ£º
sensors/+/uk/london/bakerstreet_
ÕýÈçÄãËù¼û£¬ÕâÊÇÒ»¸ö¼«ÓÅÐãµÄÄ£¿é»¯ÏµÍ³£¬Ìí¼ÓеĴ«¸ÐÆ÷ÓëÊý¾Ý¿âÖ»ÊÇСÊÂÒ»×®¡£¶øÇÒ¸ÃϵͳÔÚÐÔÄÜ·½ÃæÒ²ºÜÓÅÐ㣬MQTT
ÏûÏ¢´úÀí¿ÉÒԸ߶Ȳ¢Ðл¯²¢²ÉÓÃʼþÇý¶¯£¬´Ó¶øÊ¹µÃµ¥¸öÏûÏ¢´úÀí¿ÉÒÔÇáÒ×À©Õ¹µ½Ã¿Ãë´¦ÀíÊýÍòÌõÐÅÏ¢µÄ¼¶±ð¡£
·þÎñÖÊÁ¿£¨QoS£©
MQTT µÄÉè¼Æ³õÖÔÊÇΪÁËÔÚ²»¿É¿¿µÄÍøÂçÖÐÔË×÷Á¼ºÃ£¬Îª²»Í¬µÄ³¡¾°ÌṩÁËÈý¸ö¼¶±ðµÄ·þÎñÖÊÁ¿£¬ÔÊÐí¿Í»§¶ËÖ¸¶¨×Ô¼ºÏëÒªµÄ¿É¿¿ÐÔ¼¶±ð¡£
QoS Level 0£ºÖÁ¶àÒ»´Î
ÕâÊÇ×î¼òµ¥µÄ¼¶±ð£¬ÎÞÐè¿Í»§¶ËÈ·ÈÏ£¬Æä¿É¿¿ÐÔÓë»ù´¡ÍøÂç²ã TCP/IP Ò»Ö¡£
QoS Level 1£ºÖÁÉÙÒ»´Î£¬ÓпÉÄÜÖØ¸´
È·±£ÖÁÉÙÏò¿Í»§¶Ë·¢ËÍÒ»´ÎÐÅÏ¢£¬²»¹ýÒ²¿É·¢ËͶà´Î£»ÔÚ½ÓÊÕÊý¾Ý°üʱ£¬ÐèÒª¿Í»§¶Ë·µ»ØÈ·ÈÏÏûÏ¢£¨ACK °ü£©¡£ÕâÖÖ·½Ê½³£ÓÃÓÚ´«µÝÈ·±£½»¸¶µÄÐÅÏ¢£¬µ«¿ª·¢ÈËÔ±±ØÐëÈ·±£Æäϵͳ¿ÉÒÔ´¦ÀíÖØ¸´µÄÊý¾Ý°ü¡£
QoS Level 2£ºÖ»ÓÐÒ»´Î£¬È·±£ÏûÏ¢Ö»µ½´ïÒ»´Î
ÕâÊÇ×î²»³£¼ûµÄ·þÎñÖÊÁ¿¼¶±ð£¬È·±£ÏûÏ¢·¢ËÍÇÒ½ö·¢ËÍÒ»´Î¡£ÕâÖÖ·½·¨ÐèÒª½»»»4¸öÊý¾Ý°ü£¬Í¬Ê±Ò²»á½µµÍÏûÏ¢´úÀíµÄÐÔÄÜ¡£ÓÉÓÚÏà¶Ô±È½Ï¸´ÔÓ£¬ÔÚ
MQTT ʵÏÖÖÐͨ³£»áºöÂÔÕâ¸ö¼¶±ð£¬ÇëÈ·±£ÔÚÑ¡ÔñÊý¾Ý¿â»òÏûÏ¢´úÀíǰ¼ì²éÕâ¸öÎÊÌâ¡£

ÔÚ MQTT ÖеķþÎñÖÊÁ¿Ë®Æ½»®·Ö
¡°ÁÙÖÕÒÅÖö¡±ÐÅÏ¢
¸ÃÐÒéÌṩÁ˼ì²â·½Ê½£¬ÀûÓÃKeepAlive»úÖÆÔÚ¿Í»§¶ËÒì³£¶Ï¿ªÊ±·¢ÏÖÎÊÌâ¡£Òò´Ëµ±¿Í»§¶ËµçÁ¿ºÄ¾¡¡¢±ÀÀ£»òÕßÍøÂç¶Ï¿ªÊ±£¬ÏûÏ¢´úÀí»á²ÉÈ¡ÏàÓ¦´ëÊ©
¿Í»§¶Ë»áÏòÈÎÒâµãµÄÏûÏ¢´úÀí·¢ËÍ¡°ÁÙÖÕÒÅÖö¡±£¨LWT£©ÐÅÏ¢£¬µ±ÏûÏ¢´úÀí¼ì²âµ½¿Í»§¶ËÀëÏߣ¨Á¬½Ó²¢Î´¹Ø±Õ£©£¬¾Í»á·¢Ëͱ£´æÔÚÌØ¶¨Ö÷ÌâÉϵÄ
LWT ÐÅÏ¢£¬ÈÃÆäËü¿Í»§¶ËÖªµÀ¸Ã½ÚµãÒѾÒâÍâÀëÏß¡£
°²È«ÐÔ
MQTT£¨¼°Í¨³£µÄÎïÁªÍøÉ豸£©µÄ°²È«ÐÔÊÇÒ»¸öÏ൱´óµÄÖ÷Ì⣬֮ºóÎÒÃÇ»áÏê¼ÓÃèÊö£¬²»¹ýÔÚ±¾ÎÄÖнöÉæ¼°Á½¸öÖ÷ÒªµÄ°²È«ÐÔ¹¦ÄÜ£ºÉí·ÝÑéÖ¤Óë¼ÓÃÜ¡£
Éí·ÝÑéÖ¤ÊÇͨ¹ýÔÚ MQTT Á¬½Ó°üÖз¢ËÍÓû§ÃûÓëÃÜÂëÀ´ÊµÏÖ£¬¼¸ºõËùÓÐÏûÏ¢´úÀíÓë¿Í»§¶ËÔÚʵÏÖʱ¶¼Ö§³ÖÕâÒ»¹¦ÄÜ¡£µ«ÓÉÓÚÐÅϢ̫ÈÝÒ×±»À¹½Ø£¬ÎªÁ˱ÜÃ⣬Ӧµ±¾¡¿ÉÄܵØÊ¹Óð²È«´«Êä²ãÐÒ飨TLS£©¡£
ÐÒé±¾ÉíδÌṩ¼ÓÃܹ¦ÄÜ£¬µ«ÓÉÓÚ MQTT ÊÇÔÚ TCP ÉϲãÔËÐеģ¬ÎÒÃÇ¿ÉÒÔºÜÈÝÒ×µØÀûÓà TLS
À´Ìṩ¼ÓÃÜÁ¬½Ó¡£µ«ÕâȷʵÔö¼ÓÁË·¢ËÍÓë½ÓÊÕÐÅÏ¢µÄ¼ÆË㸴ÔÓÐÔ£¬²»µ«ÔÚÔ¼ÊøÏµÍ³ÖлáÔì³ÉÎÊÌ⣬»¹»áÓ°ÏìÏûÏ¢´úÀíµÄÐÔÄÜ¡£ÉÔºóÎÒÃÇ»á¾ÍÕâ¸öÎÊÌâ½øÐиü¶àÌÖÂÛ¡£
ÏûÏ¢´úÀíÈí¼þ
ÓÐÐí¶à²»Í¬·½Ê½ÊµÏֵĿÉÓÃÏûÏ¢´úÀí£¬×î³£¼ûµÄϵͳ°üÀ¨£º
Mosquitto ¡ª¡ª ÕâÊÇ×îÔçÔÚÉú²ú»·¾³ÖпÉÓõÄÏûÏ¢´úÀíÖ®Ò»£¬ÒÔ C ÓïÑÔ±àд£¬Ìṩ¶àÖÖÅäÖÃÓë¸ßÐÔÄÜ¡£
Mosca ¡ª¡ª ÒÔ Node.js ±àд£¬¿ÉǶÈë Node Ó¦ÓûòÒÔ¶ÀÁ¢¿ÉÖ´ÐÐÎļþµÄÐÎʽÔËÐС£ÓÉÓÚÅäÖüòµ¥²¢¾ßÓпÉÀ©Õ¹ÐÔ£¬ËüÒ²ÊÇÎÒÃÇ×îϲ»¶µÄÏûÏ¢´úÀí£¬¾ßÓиßÐÔÄܵÄÓŵ㡣
RSMB ¡ª¡ª IBM ¶Ô MQTT ÐÒéµÄʵÏÖ£¬Ò²ÊÇ×î²»³£ÓõÄÑ¡ÏîÖ®Ò»£¬²»¹ýËüÊÇÒ»¸öÓÃCÓïÑÔ±àдµÄ³ÉÊìϵͳ¡£
HiveMQ ¡ª¡ª HiveMQ ÊÇÒ»ÖÖÏà¶Ô½ÏеÄÏûÏ¢´úÀí£¬ÃæÏòÆóÒµ»·¾³£¬ÔÚ²©¿ÍÉÏÓÐºÜ¶à¹ØÓÚ MQTT
²»´íµÄÐÅÏ¢¡£
¿Í»§¶Ë¿â
¼¸ºõ°üº¬ÁËËùÓÐÁ÷ÐÐÓïÑԵĿͻ§¶Ë¿â£¬ÏëÒª¾ßÌåÁ˽âµÄ»°£¬Paho ÏîÄ¿»áÊÇÄãµÄ×î¼ÑÑ¡Ôñ¡£Õâ¸öÏîÄ¿Á¥ÊôÓÚ
Eclipse£¬Ö¼ÔÚÌṩ¸÷ÖÖÓïÑÔ¾¡¿ÉÄܶàÑù»¯µÄ MQTT ¿Í»§¶ËʵÏֲο¼¡£ÕâÊǸöºÜºÃµÄ×ÊÔ´£¬°üº¬ÒÔC¡¢Java¡¢Python¡¢JavascriptµÈÓïÑÔ±àдµÄ¿ÉÓÿͻ§¶Ë¡£
½áÂÛ
MQTT ÊÇÒ»¸öÀíÏëµÄÐÒ飬ËüÔÚÎïÁªÍøÓë M2M ͨÐÅÖеÄÓ¦ÓÃÊÇÎÞÏ޵ġ£Èç¹ûÄãÐèÒªÇáÁ¿¼¶µÄÏûÏ¢´«Êäϵͳ£¬ÄÇôËü»áÊǺܺõÄÑ¡Ôñ£¬¶øÇÒÔÚδÀ´¼¸ÄêÖкܿÉÄÜ»áÁ÷ÐÐÆðÀ´¡£Ï£Íû±¾ÎÄÄܰïÖú¶ÁÕß¶Ô
MQTT ×öÒÔÁ˽⡣ |