.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(); // 获取一个独一无二的id
    string[] topic = new string[] { "topic" };//订阅主题

    byte[] qosLevels = new byte[] { MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE }; // qos=1

    MqttClient client = new MqttClient(enpoint, port, false, null, null, MqttSslProtocols.None);
    //消息接受
    client.MqttMsgPublishReceived += new MqttClient.MqttMsgPublishEventHandler(messageReceive);
    //连接Broker
    client.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);
    }

}
相关推荐
小蒜学长4 分钟前
springboot房地产销售管理系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
FreeBuf_13 分钟前
新型域名前置攻击利用Google Meet、YouTube、Chrome及GCP构建流量隧道
前端·chrome
徐子童17 分钟前
JVM高频面试题---GC垃圾回收
java·开发语言·jvm·面试题·gc·垃圾回收算法
c0detrend18 分钟前
技术架构设计:如何打造一个高性能的Chrome截图插件
前端·chrome
幽络源小助理24 分钟前
8、幽络源微服务项目实战:前端登录跨域同源策略处理+axios封装+权限的递归查询增删改+鉴权测试
前端·微服务·架构
邂逅星河浪漫25 分钟前
【LangChain4j+Redis】会话记忆功能实现
java·spring boot·后端·阿里云·langchain4j·会话记忆
StevenGerrad28 分钟前
【读书笔记】深入理解JVM C6-9 虚拟机执行子系统
java·jvm
API开发28 分钟前
apiSQL+GoView:一个API接口开发数据大屏
前端·后端·api·数据可视化·数据大屏·apisql
运维开发王义杰30 分钟前
nodejs:揭秘 npm 脚本参数 -- 的妙用与规范
前端·npm·node.js
Z_z在努力32 分钟前
【数据结构】队列(Queue)全面详解
java·开发语言·数据结构