$dp,指的就是主题 $dp。
该主题不含通配符。更多信息,请阅读:http://ask.openluat.com/article/68
我使用的是Air800 M4的板子在通过MQTT发送数据到OneNet。请问该语句local result = mqttClient:publish("$dp",msgPack(),0)中$dp是什么意思啊 。我查过API,知道应该是topic的意思,但是我的数据流显示不出来。
这里是我的程序:
--- 模块功能:MQTT客户端处理框架
-- @author openLuat
-- @module mqtt.mqttTask
-- @license MIT
-- @copyright openLuat
-- @release 2018.03.28
module(...,package.seeall)
require"misc"
require"mqtt"
require"ntp"
ntp.timeSync()
--require"testGps"
local ready = false
--- MQTT连接是否处于激活状态
-- @return 激活状态返回true,非激活状态返回false
-- @usage mqttTask.isReady()
function isReady()
return ready
end
local function msgPack()
local torigin =
{
datastreams =
{{
id = "111",
datapoints =
{{
at = "",
value =
{
66,
}
}}
}}
}
local msg = json.encode(torigin)
print("json data",msg)
local len = msg.len(msg)
buf = pack.pack("bbbA", 0x01,0x00,len,msg)
return buf
end
--启动MQTT客户端任务
sys.taskInit(
function()
while true do
--等待网络环境准备就绪
while not socket.isReady() do sys.waitUntil("IP_READY_IND") end
local imei = misc.getImei()
--创建一个MQTT客户端
local mqttClient = mqtt.client("43082120",600,"171296","sub123456")
--阻塞执行MQTT CONNECT动作,直至成功
--如果使用ssl连接,打开--[[,{caCert="ca.crt"}]],根据自己的需求配置
while not mqttClient:connect("183.230.40.39",6002,"tcp"--[[,{caCert="ca.crt"}]]) do
sys.wait(2000)
end
while true do
local result = mqttClient:publish("$dp",msgPack(),0)
if result then
log.info("onenet send","success")
else
log.info("onenet send","failed")
end
sys.wait(20000)
end
--断开MQTT连接
mqttClient:disconnect()
end
end
)
请大佬解答。谢谢啦
$dp,指的就是主题 $dp。
该主题不含通配符。更多信息,请阅读:http://ask.openluat.com/article/68
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!