如何使用Mosquitto创建REST API(例如arest.io)

时间:2019-01-31 08:43:53

标签: mqtt mosquitto

我想创建像arest.io这样的云服务,以通过REST API访问MQTT代理(Mosquitto),就像在cloud.arest.io服务上一样。主要目标是在mosquitto mqtt代理和apache2 http服务器之间建立桥梁,以访问特定的mqtt主题,例如:

cloud.arest.io/47fd9g/digital/5/1

其中 47fd9g / digital / 5/1 表示在“ 47fd9g”主题中发布“ digital / 5/1”。在http响应中,我可以从连接到“ 47fd9g”主题的IoT设备获取JSON数据。如果您曾经使用过arest arduino库和arest.io云,那么您知道我的意思。我有基于Apache,php,mosquitto,php,Mosquitto-PHP php扩展的基于ubuntu的服务器。 Mosquitto在我的IoT设备上运行良好,但我不知道如何像arest.io一样使mosquitto和apache一起工作。

1 个答案:

答案 0 :(得分:0)

您可以使用数字PHP MQTT clients来编写服务,但是您并没有直接将apache连接到mosquitto。您将不得不编写网桥。

但是,按照您的建议将数据编码到URL中并不能很好地工作,它假定主题仅是一个单一级别的内容,这确实不能很好地扩展并且不允许使用通配符。

最好在http://example.com/some/multi/level/topic上进行HTTP POST,并在消息正文中发布消息有效内容,因为该消息的正文会发布到主题some/multi/level/topic上。