文章目录
简介
本章节主要介绍用 C#
实现 MQTT
的订阅和发布。
分为 无加密模式 和 单向认证模式。
测试环境为本机。
准备工作:
-
Mqtt
代理端。安装有mosquitto
的电脑。关于mosquitto在Windows上的安装请参考MQTT代理Mosquitto在Windows上的安装 -
证书 (证书只在加密模式下需要)。加密模式下订阅和发布需要证书。证书生成参考使用OpenSSL创建证书
-
Mqtt
协议的实现库。本文使用的实现库为M2Mqtt
。github 地址 https://github.com/eclipse/paho.mqtt.m2mqtt -
本文使用开发工具为
Visual Studio 2010
第一部分:无加密模式
第一步:配置 mosquitto.conf
保持安装后默认配置即可
第二步:代码实现
发布端
Visual Studio
中新建控制台应用程序 NormalPublisher
,添加 M2Mqtt
引用。Program
类中如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using uPLibrary.Networking.M2Mqtt;
using uPLibrary.Networking.M2Mqtt.Messages;
namespace NormalPublisher
{
class Program
{
static void Main(string[] args)
{
string content = "hello mqtt";
string topic = "/home/temperature";
string host = "127.0.0.1";
// 实例化Mqtt客户端
MqttClient client = new MqttClient(host);
string clientId = Guid.NewGuid().ToString();
client.Connect(clientId);
string strValue = Convert.ToString(content);
// 发布消息主题 "/home/temperature" ,消息质量 QoS 2
client.Publish(topic, Encoding.UTF8.GetBytes