我是MQTT协议的新手。我测试了MQTT代理,这有助于从我的Android手机发布和订购我的IOT执行器(Motors)。但我很困惑,因为如何使执行器只能从特定的出版商工作。换句话说,我想从我的PhoneA控制我的MotorA,从PhoneB控制我的MotorB等等...我不知道如何在localhost(局域网)之外开始让我的经纪人在互联网的帮助下工作。
我使用Mosquitto经纪人和ESP8266作为客户。请分享您对如何开始在互联网上托管的Mosquitto经纪人的看法。
答案 0 :(得分:1)
托管MQTT(例如https://www.cloudmqtt.com/)与您当地的Mosquitto经纪人没有什么不同,除了它在云中。
至于如何路由发布者,您可以根据已发布消息的属性执行此操作,例如像DECLARE @DATE1 DATE
DECLARE @DATE2 DATE
SET @DATE1 ='20020101'
SET @DATE2 = '20020311'
SELECT @DATE1 as t
into #FromDate
DECLARE cur CURSOR FOR
SELECT t FROM #FromDate
OPEN cur
FETCH NEXT FROM cur INTO @DATE1
WHILE(@@FETCH_STATUS=0)
BEGIN
IF(@DATE1<=@DATE2)
INSERT INTO #FromDate
VALUES(DATEADD(DAY,1,@DATE1))
FETCH NEXT FROM cur INTO @DATE1
END
CLOSE cur
DEALLOCATE cur;
SELECT t FROM #FromDate;
DROP TABLE #FromDate;
之类的东西,或者你可以发布到不同的队列。因此,电话A可以发布到队列motorId
,电话B可以发布到队列motor-a
。 ESP8266上的应用程序将同时订阅并采取相应行动。