一、 即时通讯协议-mqtt

Message Queuing Telemetry Transport ,中文 : 消息队列遥测传输

1. 主要特点

  • 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合
  • 对负载内容屏蔽的消息传输
  • 使用 TCP/IP 提供网络连接
  • 有三种消息发布服务质量: “至多一次”:适用消息频繁发且丢失一两条不影响的场景,如:环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。 “至少一次”:确保消息到达,但消息重复可能会发生 “只有一次”:确保消息到达一次。优点是确保消息送达且有且仅有一次,缺点是系统开销大.
  • 小型传输,开销很小
  • 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制

2. mqtt broker

是基于MQTT协议的服务端实现,即mqtt服务器

3. mqtt client

是基于MQTT协议的客户端实现。

二、 mqtt服务器-EMQ安装

官网下载 https://www.emqx.io/cn/downloads#broker

下载完成后(不要下载企业版的),解压压缩包,打开 Windows 命令行窗口,cd 到程序bin目录(路径不能包含中文或者空格,不然可能会出错), 启动 EMQ X:

G:emqx-windows-v3.2.3emqxbin>emqx startG:emqx-windows-v3.2.3emqx>cd binG:emqx-windows-v3.2.3emqxbin>emqx_ctl statusNode 'emqx@127.0.0.1' is startedemqx 3.2.3 is runningG:emqx-windows-v3.2.3emqxbin>

浏览器访问:http://127.0.0.1:18083/#/ ,进入控制台可视化页面,默认用户名/密码 admin/public

三、 使用Paho进行测试

1. 下载

mqtt 客户端图形调试工具 Eclipse Paho Java所有版本下载地址https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.ui.app/1.0.2/

2. 简单使用

  • 准确输入IP,点击连接
  • “订阅”面板,新增一条主题并订阅;“发布”面板,填写需要发布的消息并发布
  • 服务质量: 0 至多一次,1 至少一次 ,2 刚好一次 。具体根据项目需求决定,比如设备不停推送消息,偶尔漏一条不要紧的选择0,希望每条消息都能收到且不是那种一点差错都不能出的(如涉及到钱,重要信息) 那么选择1, 不能出一点差错的选择2。注: 2的开销最大,若不是必须不选择2。

另外,也可以用使用EMQ中Websocket工具,发布一条主题为test的信息。

发送后Paho客户端便会接收到发送的信息

3. 遗愿调试

关于遗愿的作用: 当连接MQTT服务器时设置了遗愿的客户端异常退出,心跳超时后MQTT服务器会将该客户的遗愿消息发布出去,订阅了该遗愿消息的客户端会收到通知。总的来说,就是设置(app、设备)等客户异常退出(比如,断网) 通知应用服务器的作用 (这个通知会有延迟,延迟时间和心跳有关)。

实际项目场景: 应用app服务器 监听了 主题/logout 的消息, 客户端app 连接MQTT服务器时 设置了遗愿 主题:/logout , 消息内容 {当前app用户的id} , 当用户app网络断开,过了一段时间后,MQTT服务器发现这个连接的APP客户端心跳停止很久了(和超时时间有关) ,认为app客户端已经异常退出了,然后将其连接时设置的遗愿消息发布出来主题:/logout。服务器由于已经订阅了主题/logout的消息,所以能收到这条消息,消息内容中是app用户的id,然后服务器就可以做一些下线处理了。

app用http3与服务器_mqtt服务器搭建以及客户端Paho安装使用相关推荐

  1. 自然人税收管理系统不能连接服务器,自然人税收管理系统扣缴客户端不能安装怎么办...

    自然人税收管理系统扣缴客户端是一款网上税收申报软件,很多用户在安装的时候遇到不能安装的问题,小编在下方整理出了不能安装的解决方法一览,赶快来看看吧. 操作步骤如下: 1.可能是系统配置的问题,用户可以 ...

  2. 银河麒麟服务器操作系统V10SP2搭建时间服务器

    chrony用来同步时间,来代替ntp服务,优点是很精巧的时间同步工具,更快响应时钟变化,在应对延时提供更好的稳定性能,不会出现时间空白,跨越互联网同步时间只需要几毫秒. 特点:1.更快的同步:能在最 ...

  3. 直播平台建设教程之聊天服务器该如何搭建,开发直播app软件必看

    在直播平台建设中,聊天服务器的搭建是必不可少的,开发直播app软件的开发者们需要依靠socket技术来实现程序直播间内弹幕.礼物.私信等功能,以实现社交的目的,本篇文章将讲解网络直播系统中聊天服务器搭 ...

  4. SRS流媒体服务器——单机环境搭建和源码目录介绍

    SRS流媒体服务器--单机环境搭建和源码目录介绍 1. 目录 环境搭建 源码目录介绍 1. 环境搭建 srs官⽹:https://github.com/ossrs/srs 码云的源速度快:https: ...

  5. 小程序为什么要搭建服务器,小程序搭建服务器

    小程序搭建服务器 内容精选 换一换 提供多个业务节点提供共享的日志输出目录,方便分布式应用的日志收集和管理.业务特点:多个业务主机挂载同一个共享文件系统,并发打印日志.大文件小I/O:单个日志文件比较 ...

  6. 群晖免费邮件服务器Mail Server搭建心德

    2023年1月2日 Daniel.y 群晖Synology Mail Server可以用于搭建免费的企业邮箱,不限用户数也不限邮箱容量.常规的安装流程在群晖的官方网站中有介绍,在此就不再赘述.这里主要 ...

  7. Tomcat服务器集群搭建

    Tomcat服务器集群与负载均衡 一.前言 在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有 点力不从心 ...

  8. centos6.5环境DNS-本地DNS主从服务器bind的搭建

    centos6.5环境DNS-本地DNS主从服务器bind的搭建 在上一篇博客中我已经搭建好了一个本地DNS服务器,能够实现正向反向解析,那么我们只需要加入一台从DNS服务器即可完成,我们来开始配置主 ...

  9. 宝塔服务器环境好不好_服务器环境怎么搭建?(宝塔环境搭建教程)

    大家好,欢迎来到西安蓝蜻蜓网络讲坛,上期我们讲的是怎样购买服务器,很多小伙伴都知道了购买服务器的方式方法,那么购买服务器后需要怎么搭建服务器环境呢?那么今天,我们就来讲述下服务器环境怎么搭建? 以宝塔 ...

  10. 怎么git 自己建的服务器_Git服务器搭建,以及Git基本操作

    这两天搭建Git服务器,折腾了好久,把自己纠结的几个点记录分享下. 『Git Server搭建』 1.Git安装,安装之前先查看下是否已经安装好了: git version 如果没有安装: yum i ...

最新文章

  1. 【青少年编程竞赛交流】03月份微信图文索引
  2. gVim 取消自动备份(Windows/Linux)
  3. 【Java源码分析】Android-LruCache源码分析
  4. js 加alert后才能执行方法
  5. 图论浅析--最短路之Bellman-Ford
  6. 图解VC++6.0和ACE 5.4 开发入门
  7. BugkuCTF-MISC题粗心的佳佳
  8. jsp mysql登录 demo_java jsp+servlet+mysql实现登录网页设计
  9. 在批评数据湖的时候,你有没有想过,它并不是取代数据仓库的
  10. android 音乐播放器评测,Android平台四大音乐播放器对比评测
  11. Delphi/Object Pascal开源跨平台3D和2D(台式机,移动设备,游戏主机)游戏引擎Castle Game Engine正式发布7.0预览版
  12. Python 修改微信(支付宝)运动步数,轻松 TOP1
  13. 【毕业设计】树莓派单片机墨水屏电子日历系统 - 物联网 嵌入式
  14. 2020年9月全国计算机二级c语言题库,2020年9月全国计算机等级考试二级C语言上机题库(共95套全)(76页)-原创力文档...
  15. Mac Scrcpy无线连接
  16. c语言程序设计书实验电子版,C语言程序设计实验指导书(学生用书)-修订版.pdf
  17. 博客从 WordPress 迁移至 Halo
  18. UI设计新趋势:渐变色设计重新回归主流
  19. 计算机毕业设计Java疫情状态下的图书馆座位预约系统(系统+源码+mysql数据库+Lw文档)
  20. Mac技巧:如何在拥挤的桌面上拖动文件

热门文章

  1. Java的GUI学习九(列出指定目录内容)
  2. 全国草地资源类型分布图
  3. java 中== equals hashcode源码剖析
  4. NYOJ题目1057-寻找最大数(三)
  5. 哈夫曼编码(自底向上的哈夫曼编码)
  6. java无法替换json中的换行_(NSScanner的使用)替换服务器获取的JSON数据中的换行符(JSON是不能解析带有换行符字符串)...
  7. vue分享卡住_vue init webpack卡住无反应??
  8. php 调用永中云,永中优云:是时候给大家介绍真正的云端Office了
  9. java套接字实验总结,实验三、WINSOCK套接字编程实验报告
  10. java cpu_JAVA定位CPU占用率高