文档详情

m2m考试.doc

发布:2017-04-24约8.59千字共8页下载文档
文本预览下载声明
#!/usr/bin/lua function callback( topic, -- string message) -- string print(Topic: .. topic .. , message: .. message .. ) mqtt_client2:publish(args.topic_p, message) end ---------------------------------------------------------------- function is_openwrt() return(os.getenv(USER) == root) end -----------------------------------------------------------------if (not is_openwrt()) then require(luarocks.require) end local lapp = require(pl.lapp) args = lapp [[ Subscribe to topic_s and publish all messages on topic_p -g,--host_s (default localhost) Subscribe MQTT server hostname -H,--host_p (default localhost) Publish MQTT server hostname -i,--id (default example_01) MQTT client identifier -p,--port_s (default 1883) Subscribe MQTT server port umber -q,--port_p (default 1883) Publish MQTT server port number -s,--topic_s (default test/1) Subscribe topic -t,--topic_p (default test/2) Publish topic ]] local MQTT = require(mqtt_library) mqtt_client1 = MQTT.client.create(args.host_s, args.port_s, callback) mqtt_client2 = MQTT.client.create(args.host_p, args.port_p) mqtt_client1:connect(args.id .. a) mqtt_client2:connect(args.id .. b) mqtt_client1:subscribe({ args.topic_s }) local error_message1 = nil local error_message2 = nil while (error_message1 == nil and error_message2 == nil) do error_message1 = mqtt_client1:handler() error_message2 = mqtt_client2:handler() socket.sleep(1.0) -- seconds end if (error_message1 == nil) then mqtt_client1:unsubscribe({ args.topic_s }) mqtt_client1:destroy() else print(error_message1) end if (error_message2 == nil) then mqtt_client2:destroy() else print(error_message2) end Mqtt 位置:byte 1,bits 7-4 表现为一个4-bit的无符号值,这个版本协议的枚举值如下表所示: 0-保留; 1-连接请求:客户端请求连接到服务器; 2-连接确认; 3-发布消息; 4-发布确认; 5-发布信息收到(确保分发的第1部分); 6-发布信息分发(确保分发的第2部分); 7-发布完成 (确保分发的第3部分); 8-客户端订阅请求;
显示全部
相似文档