mqtt向android推送消息(一)——发送端使用.net

来源:互联网 发布:骁龙优化的浏览器 编辑:程序博客网 时间:2024/06/05 12:21
使用.net进行mqtt协议通讯,主要是为了开发居于mqtt协议向android推送消息,使用.net开发可以参考mqtt.org上面的库,我用的是M2MQTT,网上资料很少,具体例子如下:
一、消息发布:
C#代码  收藏代码
  1. if (this.sender == null)  
  2.             {  
  3.                 this.sender = new MqttClient(IPAddress.Parse(host), 1883);  
  4.                 //var mqttClient = new MqttClient("localhost");  
  5.                 this.sender.Connect("sender");  
  6.             }  
  7.             this.sender.Publish("mobileGKTopic", System.Text.Encoding.Default.GetBytes(textBox2.Text));  
 二、消息接收
C#代码  收藏代码
  1. mqttClient = new MqttClient(IPAddress.Parse(host), 1883);  
  2.            //mqttClient = new MqttClient("localhost");  
  3.            mqttClient.Connect("Receiver");  
  4.            mqttClient.MqttMsgPublishReceived += new MqttClient.MqttMsgPublishEventHandler(mqttClient_MqttMsgPublishReceived);  
  5.   
  6.              
  7.   
  8.            mqttClient.Subscribe(new string[] { "testTopic" }, new byte[] { MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE });  
  9.   
  10. rivate void mqttClient_MqttMsgPublishReceived(object sender, uPLibrary.Networking.M2Mqtt.Messages.MqttMsgPublishEventArgs e)  
  11.        {  
  12.            //throw new NotImplementedException();  
  13.            var msg = System.Text.Encoding.Default.GetString(e.Message);  
  14.            if (!String.IsNullOrEmpty(msg))  
  15.            {  
  16.                textBox1.AppendText(Environment.NewLine);  
  17.                textBox1.AppendText(msg);  
  18.            }  
  19.        }  
 需要注意的是,编译mqtt库时要把条件编译SSL关闭,SSL的编译我还没有高清。