¡¡¡¡
MQTT (ÏûÏ¢¶ÓÁÐÔ¶³Ì´«ËÍ)ÊÇÒ»ÖÖ¡°ÇáÁ¿¼¶¡±µÄͨÐÅÐÒ飬ËüÊÇÒÔ·¢ÐÐ/¶©¹º·½Ê½Îª»ù´¡µÄ¡£MQTT¹¤ÒµÐÒéÍø¹ØµÄÓÅÊÆÊÇÄܹ»ÎªÔ¶³ÌÉ豸Ìṩʵʱ¡¢¿É¿¿µÄÐÅÏ¢·þÎñ£¬¶ø±àÂëÁ¿ºÜС£¬´ø¿íÒ²ºÜС¡£ËüÊÇÒ»ÖÖµÍÄܺġ¢µÍ´ø¿íµÄʵʱͨÐÅÐÒ飬¿ÉÒÔÓ¦ÓÃÓÚÎïÁªÍø£¬Ð¡ÐÍÉ豸£¬Òƶ¯Ó¦ÓõÈÁìÓò¡£
¡¡¡¡Ö÷ÒªµÄ¹¦ÄÜÊÇ£º
¡¡¡¡(1)½ÓÊÜÀ´×Ô¿Í»§¶ËµÄÍøÂçÁ¬½Ó
¡¡¡¡(2)½ÓÊÕ¿Í»§¶Ë·¢²¼µÄÐÅÏ¢
¡¡¡¡(3)´¦ÀíÀ´×Ô¿Í»§¶ËµÄ¶©ÔĺÍÍ˶©µÄÇëÇó
¡¡¡¡(4)Ïò¶©ÔĵĿͻ§×ª·¢Ó¦ÓóÌÐòµÄÏûÏ¢¡£
¡¡¡¡¹¤ÒµÍø¹ØModbusÐÒé
¡¡¡¡×Ô1979ÄêÊ״γöÏÖÖÁ½ñ£¬ ModbusÒѾÑݱäΪһÌ×È«ÃæµÄÖ§³Ö¶àÖÖÎïÀíÁ´½ÓµÄÐÒ鼯(Èç RS-485)¡£ Modbus µÄºËÐÄÊÇÒ»¸ö´®ÐÐͨÐÅÐÒ飬²ÉÓÃÖ÷´Óģʽ¡£ Ö÷»úÏò´Ó»ú·¢ËÍÇëÇ󣬴ӻúÓèÒԻظ´¡£ ½èÖú RS-485£¬Ö÷´Ó»úÖ®¼äµÄͨÐÅ·¢ÉúÔÚָʾ¹¦ÄÜÂëµÄÖ¡ÖС£ ¸Ã¹¦ÄÜÂë¿Éʶ±ðÒª²Ù×÷µÄ¹¦ÄÜ£¬Èç¶ÁÈ¡¶ÀÁ¢ÊäÈë;¶ÁÈ¡ÏȽøÏȳö¶ÓÁÐ;»òÖ´ÐÐÕï¶Ïº¯Êý¡£ È»ºó£¬´Ó»ú¸ù¾ÝÊÕµ½µÄ¹¦ÄÜÂë½øÐÐÏìÓ¦£¬¸ÃÏìÓ¦½ÏΪ¼òµ¥£¬ÓÉÒ»×é×Ö½Úָʾ¡£ Òò´Ë£¬´Ó»ú¿ÉÒÔÊÇÖÇÄÜÉ豸£¬Ò²¿ÉÒÔÊÇÖ»ÓÐÒ»¸ö´«¸ÐÆ÷µÄ¼òµ¥É豸¡£
¡¡¡¡´Ó¸ÃÃèÊöÖУ¬Äú¿ÉÒÔ¿´µ½ModbusÐÒé·Ç³£¼òµ¥£¬µ«ÊÇÆä×÷ΪÐÒéµÄ¿ª·ÅÐÔʹÆä³ÉΪÕû¸öÐÐÒµ»ò SCADA ϵͳµÄʵ¼ÊͨÐÅÐÒé¡£
¡¡¡¡¹¤ÒµÍø¹ØMQTTÐÒé
¡¡¡¡MQTTÊÇÒ»¸ö¿ª·ÅµÄÇáÁ¿¼¶»úÆ÷¶Ô»úÆ÷ÐÒ飬רΪÎïÁªÍø½»»¥Éè¼Æ¡£ MQTT ÍøÂç°üº¬Ò»¸ö MQTT ¾¼ÍÈË (broker)£¬¸ºÔðе÷ MQTT ´úÀíÖ®¼äµÄ½»»¥¡£ ´úÀíÊÇ·¢²¼Æ÷£¬¸ºÔð·¢²¼¹©Óû§Ê¹ÓõÄÐÅÏ¢¡£
¡¡¡¡MQTT µÄÒªÇó·Ç³£ÉÙ£¬ÒòΪËüרΪ×ÊÔ´ÓÐÏÞµÄǶÈëʽÉ豸Éè¼Æ¡£ ³ýÁËÕ¼µØ¿Õ¼äÉÙÖ®Í⣬MQTT»¹¿ÉÌṩ³öÉ«µÄͨПßЧÐÔ(¼´Ê¹Í¨¹ýµÍ´ø¿íÍøÂç½øÐÐͨÐÅ)ºÍ·Ç³£ÉٵĿªÏú(½ÏÖ® HTTP µÈÐÒé)¡£ ÔÚ 3G ÍøÂçÖУ¬MQTT µÄÍÌÍÂÁ¿ËÙ¶ÈÊÇʹÓà HTTP µÄ±íÊöÐÔ״̬תÒÆ (REST) µÄ 93 ±¶¡£
¡¡¡¡MQTT ¿ÉʹÓÃ×îÉٵķ½·¨Ö¸Ê¾ÒªÔÚÌض¨Ö÷ÌâÉÏʵʩµÄ²Ù×÷£¬½ø¶øʵʩ·¢²¼/¶©ÔÄģʽ¡£ ´úÀíÏÈÁ¬½Óµ½¾¼ÍÈË£¬È»ºóÔÙ·¢²¼»ò¶©ÔÄÖ÷Ìâ¡£ Íê³Éºó£¬´úÀí½«´Ó¾¼ÍÈËÉ϶ϿªÁ¬½Ó¡£
¡¡¡¡MQTT¹¤ÒµÐÒéÍø¹ØµÄÍøÂç´«ÊäÊÇʲô
¡¡¡¡MQTT½¨Á¢ÁËÒ»¸ö»ù±¾µÄÍøÂç´«Ê䣬Äܹ»½«¿Í»§¶ËÓë·þÎñÆ÷Á¬½Ó£¬²¢ÇÒ»ùÓÚ×Ö½ÚÁ÷µÄÓÐÐò¡¢·ÇÆÆ»µÐÔµÄË«Ïò´«Êä¡£
¡¡¡¡(1)ÐÒéÔÀí
¡¡¡¡MQTTÐÒéͨѶ¹ý³Ì£¬ÐèÒª¿Í»§¶ËºÍ·þÎñÆ÷¹²Í¬Íê³É£¬Ò»¹²ÓÐÈý¸öÉí·Ý£¬·¢²¼Õß(Publish)£¬´úÀí(Broker)¡¢¶©ÔÄÕß(Subscribe)£¬ÆäÖÐÏûÏ¢·¢·¢²¼ÕߺͶ©ÔÄÕ߶¼¿ÉÒÔÊÇ¿Í»§¶Ë£¬ÏûÏ¢´úÀíÊÇmqtt·þÎñÆ÷¡£
¡¡¡¡¢ÙMQTTµÄʵÏÖ·½Ê½
¡¡¡¡Topic£ºÖ÷Ì⣬¿ÉÒÔÀí½âΪÏûÏ¢µÄÀàÐÍ;
¡¡¡¡Payload£ºÏûÏ¢ÄÚÈÝ£¬¿ÉÒÔÀí½âΪ¾ßÌåҪʹÓõÄÊý¾ÝÄÚÈÝ
¡¡¡¡¢ÚMQTT¿Í»§¶Ë
¡¡¡¡MQTT¹¤ÒµÐÒéÍø¹ØÊÇÒ»ÖÖÒÔ mqttΪ»ù´¡µÄÍøÂçÁ¬½Ó£¬¾³£±»ÓÃÀ´·¢²¼ÐÅÏ¢¡¢¶©¹º¡¢É¾³ý»òɾ³ýÓ¦ÓõÄÏûÏ¢¡¢ÖжÏÓë·þÎñÆ÷µÄÁ¬½Ó¡£
¡¡¡¡(2) MQTTÐÒéÌØÐÔ
¡¡¡¡¸ÃÐÒéÊÇΪÔڵʹø¿í¡¢²»¿É¿¿µÄÍøÂçÖеÄÔ¶³Ì´«¸ÐºÍ¿ØÖÆ×°ÖÃͨÐŶøÉè¼ÆµÄ£¬¾ßÓÐÈçϼ¸¸öÖ÷ÒªÌص㣺
¡¡¡¡¢ÙʹÓ÷¢²¼/¶©ÔÄÏûϢģʽ£¬Ìṩһ¶Ô¶àµÄÏûÏ¢·¢²¼£¬½â³ýÓ¦ÓóÌÐòñîºÏ¡£
¡¡¡¡¢Ú¶Ô¸ºÔØÄÚÈÝÆÁ±ÎµÄÏûÏ¢´«Êä¡£
¡¡¡¡¢ÛʹÓÃTcp/IPÌṩÍøÂçÁ¬½Ó¡£
¡¡¡¡¢ÜÓÐÈýÖÖÏûÏ¢·¢²¼·þÎñÖÊÁ¿£¬ÏûÏ¢·¢²¼(Qos£º0ÖÁ¶àÒ»´Î£¬1ÖÁÉÙÒ»´Î£¬2Ö»ÓÐÒ»´Î)
¡¡¡¡¢ÝСÐÍ´«Êä¡¢Á÷Á¿ÐèÇóС¡£
¡¡¡¡±ê×¼»¯MQTTÐÒé
¡¡¡¡¢Ù¶©ÔÄ(subscripTIon)
¡¡¡¡¶©ÔÄ°üº¬Ö÷ÌâɸѡÆ÷(Topic Filter)ºÍ·þÎñÖÊÁ¿(QoS)¡£¶©ÔÄ»áÓëÒ»¸ö»á»°(Session)¹ØÁª¡£Ò»¸ö»á»°¿ÉÒÔ°üº¬¶à¸ö¶©ÔÄ¡£Ã¿Ò»¸ö»á»°ÖеÄÿ¸ö¶©ÔĶ¼ÓÐÒ»¸ö²»Í¬µÄÖ÷ÌâɸѡÆ÷¡£
¡¡¡¡¢Ú»á»°(session)
¡¡¡¡Ã¿¸ö¿Í»§¶ËÓë·þÎñÆ÷½¨Á¢Á¬½Óºó¾ÍÊÇÓ¦¸Ã»á»°¿Í»§¶ËºÍ·þÎñÆ÷Ö®¼äÓÐ״̬½»»¥£¬»á»°´æÔÚÓëÒ»¸öÍøÂçÖ®¼ä£¬Ò²¿ÉÄÜÔÚ¿Í»§¶ËºÍ·þÎñÆ÷Ö®¼ä¿çÔ½¶à¸öÁ¬ÐøµÄÍøÂçÁ¬½Ó¡£
¡¡¡¡¢ÛÖ÷ÌâÃû(Topic name)
¡¡¡¡Á¬½Óµ½Ò»¸öÓ¦ÓóÌÐòÏûÏ¢µÄ±êÇ©£¬¸Ã±êÇ©Óë·þÎñÆ÷µÄ¶©ÔÄÏàÆ¥Åä·þÎñÆ÷»á½«ÏûÏ¢·¢Ë͸ø¶©ÔÄËùÆ¥Åä±êÇ©µÄÿһ¸ö¿Í»§¶Ë
¡¡¡¡¢ÜÊý¾ÝÉÏ´«(Data upload)
¡¡¡¡µç±íÎÞÏß´«Êä×öµ½ÁËСÐÍ´«Êä¡¢Á÷Á¿ÐèÇóС£¬Õâ¿îµç±íµÄÊý¾ÝÉÏ´«Á÷³Ì¼ò½à£¬(Ïêϸ¼û¸½Â¼)½«¶àÓàµÄÊý¾ÝÉÏ´«²½ÖèÓÅ»¯£¬´Ùʹ¶¨ÖÆ»¯Êý¾ÝÉÏ´«£¬ÆäÖаüº¬Á˳£Óõĵç²ÎÁ¿Êý¾Ý¡¢ÐźÅÇ¿¶È¡¢Óй¦ÐèÁ¿¡¢µçѹµçÁ÷±ä±È¡¢Î¶ȡ¢DI״̬¡¢µçѹµçÁ÷г²¨»û±äÂÊ¡¢¼â·åƽ¹ÈµçÄܵȵȡ£
¡¡¡¡×ÛÉÏËùÊö£¬ÔÚÏÖÔÚÎïÁªÍø¼¼ÊõµÄ´ó»·¾³Ï£¬MQTT·þÎñÆ÷µÄÒѾ½Ðø±»¸÷¸öÉ̼ÒÆóÒµ²ÉÓã¬ÒòΪMQTT·þÎñÆ÷ÓëÐÒéÄܹ»Âú×ãËûÃÇÖÇÄÜ»¯¹ÜÀíÐèÇ󡣺ܶàÆóÒµµÄһЩÉú²ú³µ¼äÅäµç¹ñ¶¼ÐèҪʹÓÃÎÞÏßÉ豸¼à²âÓõçÉ豸µÄ¹¤×÷״̬£¬Í¨¹ýMQTT¹¤ÒµÐÒéÍø¹Ø¶ÔµçÀÂÒÔ¼°Éú²úÏߵĸ÷ÖÖÉ豸²ÎÊý½øÐвɼ¯£¬Ö÷Òª°üº¬µçÁ÷¡¢µçѹµÈµç²ÎÁ¿Êý¾Ý£¬²¢ÇÒ½«»ñµÃµÄÊý¾ÝʵʱÉÏ´«µ½MQTT·þÎñÆ÷Ôƶˣ¬È»ºóͨ¹ýÎïÁªÍøƽ̨ºÍÊý¾Ý¿â¶©ÔÄ·þÎñÆ÷¶ËÖ÷Ì⣬À´»ñÈ¡Öն˼à²âÉ豸µÄÊý¾Ý£¬ÊµÏÖÖն˺ÍÔƶ˵ÄË«ÏòͨÐÅ£¬´î½¨Ç¿´óµÄÊý¾ÝͨµÀ£¬»ñµÃµÄÊý¾Ý±»´æ´¢µ½MQTT·þÎñÆ÷µÄÔÆÊý¾Ý¿âÖУ¬Äܹ»±£Ö¤Êý¾ÝµÄ°²È«ÐÔ,´î½¨Óõç¹ÜÀíºÍÏÔʾϵͳ£¬Í¨¹ýÔƼ¼Êõ¡¢´óÊý¾Ý¡¢»¥ÁªÍø½«»ñµÃµÄÊý¾ÝÏÔʾµ½Ç°Ì¨£¬Óû§¿ÉÒÔͨ¹ýµÇ¼ҳÃæµÈʵʱ¼à¿ØÉ豸ºÍµçÀµĵçÁ¦Êý¾ÝÇé¿ö¡£