.net 使用MQTT订阅消息
在nuGet下载M2Mqtt V4.3.0版本。(支持.net framework)
订阅主题
public void LoadMQQCData()
{string enpoint = "xxx.xxx.x.x";//ip地址int port = 1883;//端口string user = "usrname";//用户名string pwd = "pwd";//密码string clientid = Guid.NewGuid().ToString(); // 获取一个独一无二的idstring[] topic = new string[] { "topic" };//订阅主题byte[] qosLevels = new byte[] { MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE }; // qos=1MqttClient client = new MqttClient(enpoint, port, false, null, null, MqttSslProtocols.None);//消息接受client.MqttMsgPublishReceived += new MqttClient.MqttMsgPublishEventHandler(messageReceive);//连接Brokerclient.Connect(clientid, user, pwd);client.Subscribe(topic, qosLevels);}
接收数据
static void messageReceive(object sender, MqttMsgPublishEventArgs e)
{Thread.Sleep(1000 * 30);//等待半分钟 等待质控数据入库//接收到的数据byte[] Bytes = e.Message;//获取站点编号try{string sstation = e.Topic.Substring(e.Topic.IndexOf("qc") - 10, 9);if (!string.IsNullOrEmpty(sstation) && sstation.Length == 9){ //代表该(SS4201089)站点做了质控do some things;}}catch (Exception ex){MessageServcie.Instance.OnShowMessageDelegate.Invoke("出错:" + ex.Message.ToString(), false);}}