首页 > 其他分享 >MQTT是什么,物联网

MQTT是什么,物联网

时间:2024-07-13 16:31:04浏览次数:19  
标签:Web WebSocket 什么 联网 topic MQTT client message

写文思路:

以下从几个方面介绍MQTT,包括:MQTT是什么,MQTT和webSocket的结合,以及使用场景,

一、MQTT是什么

MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息传输协议,广泛应用于物联网(IoT)设备之间的通信。

MQTT 在设计时考虑了低带宽、不可靠网络环境下的高效数据传输。

MQTT 可以通过 WebSocket 使用,从而在 Web 应用中实现实时消息传输。 

 

二、MQTT和webSocket的结合

链接:什么是webSocket点击跳转 

MQTT 原本是基于 TCP/IP 的协议,但为了适应 Web 应用的需求,MQTT 也可以通过 WebSocket 传输。

 

MQTT和webSocket的结合的好处:

  1. 在 Web 环境中的适用性

    • WebSocket 是 Web 环境中的标准双向通信协议,可以很容易地在浏览器中使用。结合 MQTT 和 WebSocket,浏览器客户端可以直接与 MQTT 代理(Broker)进行通信。
  2. 实时通信

    • MQTT 和 WebSocket 都支持实时通信,结合使用可以在 Web 应用中实现高效、低延迟的数据传输。
  3. 跨平台

    • 使用 WebSocket,MQTT 可以在各种平台(包括浏览器、移动设备和桌面应用)上使用,无需额外的网络库。

三、使用 MQTT over WebSocket 的场景

 将 MQTT 与 WebSocket 结合使用,可以在 Web 应用中实现高效、实时的消息传输,特别适用于需要实时数据更新的应用场景。MQTT 的发布/订阅模式与 WebSocket 的双向通信特性相结合,为开发者提供了强大而灵活的解决方案。

 

  • 实时物联网仪表盘

    • 在浏览器中显示实时物联网数据,例如传感器读数、设备状态等。
  • 在线聊天和通知

    • 在 Web 应用中实现实时聊天和推送通知。
  • 实时协作工具

    • 支持多个用户实时协作的 Web 应用,例如共同编辑文档、白板等。

四、如何在 Web 应用中使用 MQTT over WebSocket

以下是一个在 Web 应用中使用 MQTT over WebSocket 的示例:

1. 配置 MQTT 代理

首先,需要确保 MQTT 代理(Broker)支持 WebSocket。例如,使用 Mosquitto 代理,可以在配置文件中启用 WebSocket 支持:

listener 1883
protocol mqtt

listener 8083
protocol websockets

2. 在 Web 应用中使用 MQTT.js 库

MQTT.js 是一个功能强大的 MQTT 客户端库,支持在 Node.js 和浏览器中使用。下面是一个简单的示例,展示如何在浏览器中使用 MQTT over WebSocket:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>MQTT over WebSocket Example</title>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/mqtt/4.2.6/mqtt.min.js"></script>
</head>
<body>
  <h1>MQTT over WebSocket Example</h1>
  <div>
    <label for="message">Message:</label>
    <input type="text" id="message">
    <button onclick="sendMessage()">Send</button>
  </div>
  <ul id="messages"></ul>

  <script>
    // 连接到 MQTT 代理
    var client = mqtt.connect('ws://localhost:8083');

    // 当连接建立时触发
    client.on('connect', function () {
      console.log('Connected to MQTT broker');
      // 订阅主题
      client.subscribe('test/topic', function (err) {
        if (!err) {
          console.log('Subscribed to test/topic');
        }
      });
    });

    // 当接收到消息时触发
    client.on('message', function (topic, message) {
      // 将消息添加到页面
      var msg = document.createElement('li');
      msg.textContent = topic + ": " + message.toString();
      document.getElementById('messages').appendChild(msg);
    });

    // 发送消息
    function sendMessage() {
      var message = document.getElementById('message').value;
      client.publish('test/topic', message);
    }
  </script>
</body>
</html>

备注:

  • 引入 MQTT.js 库

    • 通过 CDN 引入 MQTT.js 库。
  • 连接到 MQTT 代理

    • 使用 mqtt.connect('ws://localhost:8083') 连接到启用了 WebSocket 的 MQTT 代理。
  • 订阅主题

    • 在连接建立后,订阅 test/topic 主题。
  • 接收消息

    • 通过 client.on('message', function (topic, message) { ... }) 处理接收到的消息,并将其显示在页面上。
  • 发送消息

    • 使用 client.publish('test/topic', message)test/topic 主题发送消息。

 

标签:Web,WebSocket,什么,联网,topic,MQTT,client,message
From: https://blog.csdn.net/weixin_45024453/article/details/140316603

相关文章

  • 运算符的关系,什么叫一元运算符,二元运算符,三元运算符,运算符优先级,以及运算符的
    按照操作数个数区分:一元运算符:一元运算符只需要一个操作数。常见的一元运算符有:1.递增和递减运算符:++和--,用于对操作数进行增加或减少1。2.正负号运算符:+和-,用于表示正负数。3.逻辑非运算符:!,用于对布尔值进行取反。二元运算符:二元运算符需要两个操作数。常见的二元运......
  • 水利行业的智慧转型之路:结合物联网、大数据等先进技术,探讨智慧水利在提升管理效率、保
    目录引言一、智慧水利的内涵与意义(一)智慧水利的定义(二)智慧水利的意义二、关键技术支撑(一)物联网技术(二)大数据技术(三)云计算技术(四)人工智能技术三、应用实践探索(一)智慧水库管理(二)智慧河湖长制(三)智慧防汛抗旱(四)智慧节水灌溉四、未来展望1、技术融合创新2、标准化......
  • 全栈物联网项目:结合 C/C++、Python、Node.js 和 React 开发智能温控系统(附代码示例)
    1.项目概述本文详细介绍了一个基于STM32微控制器和AWSIoT云平台的智能温控器项目。该项目旨在实现远程温度监控和控制,具有以下主要特点:使用STM32F103微控制器作为主控芯片,负责数据采集、处理和控制逻辑采用DHT22数字温湿度传感器,精确采集环境温湿度数据通过ESP8266WiF......
  • 【茶文化】程序员喝什么茶?
    目录茶的起源茶的分类中国六大茶类再加工茶类产茶地区探究茶的起源的含义茶的起源时间茶的影响茶文化的兴起茶树种属特点茶品种绿茶乌龙茶红茶黑茶白茶黄茶中国茶园工艺茶的起源茶的分类中国六大茶类再加工茶类花茶(茉莉花茶、珠兰花茶、......
  • 【EI稳定检索会议推荐】第三届人工智能、物联网和云计算技术国际会议(AIoTC 2024),火热征
    第三届人工智能、物联网和云计算技术国际会议(AIoTC2024)20243rd InternationalConferenceonArtificialIntelligence,InternetofThingsandCloudComputingTechnology2024年9月13-15日|中国武汉大会简介第三届人工智能、物联网与云计算技术国际会议(AIoTC2024......
  • 基于物联网的门禁与考勤系统(阿里云)
    鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)基于物联网的门禁与考勤系统(阿里云)介绍基于物联网的门禁与考勤系统(阿里云)......
  • 亚马逊IP关联是什么?要怎么解决呢?
    亚马逊不仅提供了广泛的商品和服务,也是许多企业和个人选择的电子商务平台。然而,与亚马逊相关的IP关联问题,特别是在网络安全和运营管理方面,经常成为使用亚马逊服务的用户和商家关注的焦点。通过了解亚马逊IP关联的含义、可能的原因及解决方案,可以帮助大家更好地管理和优化其亚马......
  • 【大模型系列——解读RAG】_大模型rag是什么意思
    文末有福利!RAG是2023年最流行的基于LLM的应用系统架构。有许多产品几乎完全建立在RAG之上,覆盖了结合网络搜索引擎和LLM的问答服务,到成千上万个数据聊天的应用程序。很多人将RAG和Agent作为大模型应用的两种主流架构,但什么是RAG呢?RAG又涉及了哪些具体的技术呢?1.什......
  • 【大白话讲清楚:什么是 Langchain 及其核心概念】
    文末有福利!在AI和机器学习领域,每天都有新技术和框架涌现。今天,我们来聊聊最近引起广泛关注的一个框架——Langchain。https://python.langchain.com/docs/get_started/introduction那么,Langchain到底是什么,它为什么这么受欢迎,以及它是如何工作的呢?别担心,我会用大白话......
  • React中使用usePrevious的意义是什么,为啥要用它
    usePrevious钩子exportfunctionusePrevious<T>(value:T):T|undefined{constref=useRef<T>();useEffect(()=>{ref.current=value;},[value]);returnref.current;}注:更多好用的性能钩子网站推荐:https://react-hooks-library.vercel.ap......