当前位置:首页 > CN2资讯 > 正文内容

mqtt云服务器 mqtt服务器功能

1天前CN2资讯

一、MQTT简介
  MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级协议,该协议构建于TCP/IP协议之上,MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
  MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。  
二、特性
  MQTT协议工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
  (1)使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
  (2)对负载内容屏蔽的消息传输。
  (3)使用TCP/IP提供网络连接。
  主流的MQTT是基于TCP连接进行数据推送的,但是同样有基于UDP的版本,叫做MQTT-SN。这两种版本由于基于不同的连接方式,优缺点自然也就各有不同了。
  (4)有三种消息发布服务质量(qss):
  “至多一次”,消息发布完全依赖底层TCP/IP网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。这一种方式主要普通APP的推送,倘若你的智能设备在消息推送时未联网,推送过去没收到,再次联网也就收不到了。
  “至少一次”,确保消息到达,但消息重复可能会发生。
  “只有一次”,确保消息到达一次。在一些要求比较严格的计费系统中,可以使用此级别。在计费系统中,消息重复或丢失会导致不正确的结果。这种最高质量的消息发布服务还可以用于即时通讯类的APP的推送,确保用户收到且只会收到一次。 
     当然了这个数字越小,带宽带站越低
三、原理

实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:
(1)Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);
(2)payload,可以理解为消息的内容,是指订阅者具体要使用的内容。
四、实现
1.下载emq

2.启动后访问
localhost:18083 默认的账号密码是admin得到下图

3.通过node red图形化工具建立连接

注意这里的主题就是topic订阅主题,一定要一致

正常流程操作完成后可以再emq的图形页面看到客户连接

发送消息后,确实可以收到数据贼表示连接成功

基本上到这里简单mqtt 连接就算实现了
后续不想使用emq,也可以使用阿里的 原理其实差不多,只不过有几个id key需要购买,就看个人情况而定了
public class MqttPublishSample {

public static void main(String[] args) { String topic = "MQTT Examples"; String content = "Message from MqttPublishSample"; int qos = 2; String broker = "tcp://:1883"; String clientId = "JavaSample"; MemoryPersistence persistence = new MemoryPersistence(); try { MqttClient sampleClient = new MqttClient(broker, clientId, persistence); MqttConnectOptions connOpts = new MqttConnectOptions(); connOpts.setCleanSession(true); System.out.println("Connecting to broker: "+broker); sampleClient.connect(connOpts); System.out.println("Connected"); System.out.println("Publishing message: "+content); MqttMessage message = new MqttMessage(content.getBytes()); message.setQos(qos); sampleClient.publish(topic, message); System.out.println("Message published"); sampleClient.disconnect(); System.out.println("Disconnected"); System.exit(0); } catch(MqttException me) { System.out.println("reason "+me.getReasonCode()); System.out.println("msg "+me.getMessage()); System.out.println("loc "+me.getLocalizedMessage()); System.out.println("cause "+me.getCause()); System.out.println("excep "+me); me.printStackTrace(); } } }

记录本周的一个粗心错误->redis读取的服务器地址没有开启,换成本地的就ok了

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/20994.html

    分享给朋友:

    “mqtt云服务器 mqtt服务器功能” 的相关文章

    回国节点使用指南:轻松访问国内网站,畅享便捷网络体验

    回国节点的定义与作用 回国节点是一种特殊的网络技术,它允许用户通过位于中国境外的服务器访问国内被限制的网站或服务。这种技术对于那些在国外生活或旅行,但仍需要访问中国大陆网站的人来说非常有用。回国节点的主要作用是绕过地理限制,让用户能够像在国内一样自由地浏览和使用各种在线资源。 使用回国节点,用户不仅...

    ICMP vs TCP:网络测试中的最佳协议选择

    当我们谈论网络协议时,ICMP(Internet Control Message Protocol)和TCP(Transmission Control Protocol)是两个重要的角色。它们虽然都在网络通信中扮演着关键的角色,却有着截然不同的功能和应用。理解这两种协议的定义及其特性,能够帮助我在构...

    Digital-VM优惠活动揭秘:享受五折折扣和稳定续费

    Digital-VM优惠概述 Digital-VM简介 Digital-VM是一家专注于提供基于KVM架构的VPS主机服务商,凭借其强大的服务器性能和丰富的网络资源,已经逐渐在市场中站稳了脚跟。如果你在寻找高可靠性、灵活配置的VPS主机,Digital-VM绝对值得一试。它在全球多个地区建立了数据中...

    全面掌握VPS线路检测:提高网络性能的关键工具和方法

    当我们讨论VPS(虚拟专用服务器)时,线路检测是不可或缺的一部分。VPS线路检测主要是评估VPS网络性能的一个环节,涵盖了多个重要的测试方法,比如ping值测试、路由跟踪,以及下载速度测试。每一种检测方式都有其独特的功能,通过这些手段,我们能够获取到相关的网络性能数据,从而更好地了解VPS的使用状态...

    GPU租用市场的崛起与行业应用分析

    在过去的几年中,GPU租用市场的发展速度让我惊叹,真的如雨后春笋般冒出。随着科技的不断进步和市场需求的增长,越来越多的人选择租用GPU来满足高性能计算的需求。这种选择不仅适用于企业,也吸引了许多个人用户。GPU租用为我们提供了便利,加速了各类计算密集型任务的完成。 GPU租用的定义非常简单,就是将高...

    台湾 VPS 服务器:低延迟高安全的理想选择

    台湾VPS服务器概述 我们常常听到“VPS服务器”这个词,但是仔细了解后,你会发现台湾的VPS服务器在众多选择中脱颖而出。这种服务器是“虚拟专用服务器”的缩写,它能让用户在一台物理服务器上分配自己的虚拟空间。这种技术让企业和个人用户可以以较低的成本拥有独立的服务器环境,从而更好地管理他们的网络资源。...