段时间在使用MQTTnet,都说这个东西比较好,可是翻了翻网上没有例子给参考一下。
今天算是找到了,给高手的帖子做个宣传吧.
由于GitHub上介绍的东西比较少,以我的水平真是不知道怎么用,先照葫芦画瓢,再看看怎么回事吧:
功能:
把订阅与发布做成一个类,还带有自动重连的功能
usingSystem.Threading;usingSystem.Threading.Tasks;usingMQTTnet;usingMQTTnet.Client; //客户端需要用到usingMQTTnet.Client.Options; //具体连接时需要用到的属性,ID的名称,要连接Server的名称,接入时用到的账号和密码,掉线时是否重新清除原有名称,还有许多...usingMQTTnet.Packets; //这个没用上usingMQTTnet.Protocol; //这个也没用上usingMQTTnet.Client.Receiving; //接收usingMQTTnet.Client.Disconnecting; //断线using MQTTnet.Client.Connecting; //连接
新建一个类:先写一下变量和一些字段
classHOSMQTT
{private static MqttClient mqttClient = null;private static IMqttClientOptions options = null;private static bool runState = false;private static bool running = false;///
///服务器IP///
private static string ServerUrl = "182.61.51.85";///
///服务器端口///
private static int Port = 61613;///
///选项 - 开启登录 - 密码///
private static string Password = "ruichi8888";///
///选项 - 开启登录 - 用户名///
private static string UserId = "admin";///
///主题/// China/Hunan/Yiyang/Nanxian
/// Hotel/Room01/Tv
/// Hospital/Dept01/Room001/Bed001
/// Hospital/#
///
private static string Topic = "China/Hunan/Yiyang/Nanxian";///
///保留///
private static bool Retained = false;///
///服务质量/// 0 - 至多一次
/// 1 - 至少一次
/// 2 - 刚好一次
///
private static int QualityOfServiceLevel = 0;
}
先看一下Start方法
public static voidStart()
{try{
runState= true;
Thread thread= newThread(Work); //原帖中是这样写的 Thread thread = new Thread(new ThreadStart( Work));
thread.IsBackground=