适用于Windows IOT Core的MQTT代理?

时间:2016-02-03 18:03:10

标签: protocols mqtt iot esp8266 windowsiot

我有一个运行Windows IOT Core的Raspberry Pi,它正在运行我的家庭自动化应用程序。现在我需要在RB饼和ESP8266之间建立通信。

我一直在考虑MQTT协议,但我不想让外部服务器运行MQTT代理,我找不到Win IOT的代理。 Windows IOT Core是否存在MQTT代理?如果没有,您会为此目的推荐什么样的通信协议?

4 个答案:

答案 0 :(得分:3)

Antonio在Windows IoT Core上有几个选项

如果您使用Node.js构建应用程序 Mosca http://www.mosca.io

如果您使用Python构建应用程序,可以查看 hbmqtt https://github.com/beerfactory/hbmqtt

当然,对于.NET应用程序,您可以搜索Nuget。 GnattMQ (www.nuget.org/packages/GnatMQ)似乎是非常受欢迎的.NET库

答案 1 :(得分:2)

GnatMQTT是用C#编写的,所以我想应该建立在Window IoT上

答案 2 :(得分:1)

可能存在一些MQTT lib或其他协议。但我假设以下情况并建议解决方案:

<强>假设:

  • Rpi是系统的核心。
  • ESP就像卫星,传感器等一样工作。
  • 因此ESP正在向Rpi报告数据
  • 他们(Rpi和ESP)都在同一个子网中。

<强>解决方案:

  • 在Rpi端实现一个简单的UDP bcast监听器并监听BROADCAST ip上的某个特定端口。 (例如:8889)
  • 在ESP端实现UDP客户端将数据发送到BROADCAST ip和特定端口。 (例如:8889)
  • 实现消息格式并让ESP发送它,然后让Rpi解析它。

示例邮件格式:

消息可以是字符串(ASCII编码)。

ABBBEEECCCDDDD.....DDD
A: Start Header
BBB: Sender ID
EEE: Receiver ID
CCC: Payload Byte Count
D..: Payload

OR

A|BBB|EEE|DDDDD..DDDDDD|F
A: Start Header
|: Seperator
BBB: Sender ID
EEE: Receiver ID
D..: DATA payload
F: End Header.

此配置允许您使用DHCP,而不是记录客户端的任何IP地址,并且实施起来很便宜(根据资源ram,cpu等)。 注意:我不知道MQTT如何使用资源。

答案 3 :(得分:-2)

ton of MQTT brokers可用。 ActiveMQ是使用Java构建的,可以安装在任何支持Java的平台上。 MosquittoRabbitMQ具有适用于Windows的安装程序。

但是,如果你想要比MQTT更轻量级的东西,你可能还想看看CoAP