c# mqtt client example

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using uPLibrary.Networking.M2Mqtt;
using uPLibrary.Networking.M2Mqtt.Messages;

namespace MQTTTest
{
    public partial class Form1 : Form
    {
        MqttClient client;

        public Form1()
        {
            InitializeComponent();

            //client = new MqttClient("broker.hivemq.com");
            client = new MqttClient("192.168.0.83");
            byte code = client.Connect(Guid.NewGuid().ToString());
            client.ProtocolVersion = MqttProtocolVersion.Version_3_1;

            client.MqttMsgPublished += client_MqttMsgPublished;
            client.MqttMsgSubscribed +=client_MqttMsgSubscribed;
            client.MqttMsgPublishReceived += client_MqttMsgPublishReceived;
            // MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE
            ushort msgId = client.Subscribe(new string[] { "/test/#" }, new byte[] { 0 });

        }

        private void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
        {
            string ReceivedMessage = Encoding.UTF8.GetString(e.Message);
            Console.WriteLine("_MqttMsgPublishReceived = " + ReceivedMessage);
        }

        private void client_MqttMsgSubscribed(object sender, uPLibrary.Networking.M2Mqtt.Messages.MqttMsgSubscribedEventArgs e)
        {
            Console.WriteLine("Subscribed for id = " + e.MessageId);
        }

        private void client_MqttMsgPublished(object sender, uPLibrary.Networking.M2Mqtt.Messages.MqttMsgPublishedEventArgs e)
        {
            Console.WriteLine("MessageId = " + e.MessageId + " Published = " + e.IsPublished);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ushort msgId = client.Publish("/test/a001/222", // topic
                              Encoding.UTF8.GetBytes("MyMessageBody"), // message body
                              0, // QoS level
                              true); // retained
        }
    }
}




vs2013 에서 동작하는 소스입니다.

댓글

이 블로그의 인기 게시물

mount 명령 ( 읽기 권한만 있는놈 쓰기 권한 주기 )

비글본 블랙 고정 아이피 설정