腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
PM吃瓜(公众号)
专栏成员
举报
377
文章
498570
阅读量
37
订阅数
订阅专栏
申请加入专栏
全部文章(377)
php(64)
编程算法(56)
thinkphp(40)
腾讯云测试服务(33)
网站(31)
http(28)
html(27)
项目管理(27)
sql(26)
项目经理(26)
数据库(23)
project(17)
敏捷开发(16)
css(14)
物联网(12)
网络安全(11)
https(11)
devops(10)
task(9)
javascript(8)
jquery(8)
ajax(8)
kubernetes(8)
缓存(8)
scrum(8)
需求分析(8)
bootstrap(7)
面向对象编程(7)
uml(7)
mqtt(7)
管理(7)
企业(6)
存储(6)
分布式(6)
运维(6)
微服务(6)
product(6)
scope(6)
json(5)
打包(5)
nginx(5)
容器(5)
开源(5)
tcp/ip(5)
数据结构(5)
excel(5)
time(5)
ui(5)
敏捷(5)
软件(5)
云数据库 SQL Server(4)
mvc(4)
api(4)
linux(4)
安全(4)
it(4)
list(4)
pmp(4)
工作(4)
软件开发(4)
费用中心(3)
负载均衡(3)
git(3)
负载均衡缓存(3)
apache(3)
文件存储(3)
cci 持续集成(3)
自动化(3)
数据分析(3)
腾讯云开发者社区(3)
虚拟化(3)
architecture(3)
key(3)
process(3)
structure(3)
产品经理(3)
生命周期(3)
研发(3)
ios(2)
java(2)
c 语言(2)
c++(2)
react(2)
xml(2)
单片机(2)
phpmyadmin(2)
ide(2)
spring(2)
智能硬件(2)
数据迁移(2)
自动化测试(2)
单元测试(2)
jenkins(2)
架构设计(2)
云计算(2)
count(2)
deployment(2)
document(2)
increment(2)
input(2)
interface(2)
line(2)
map(2)
package(2)
pdf(2)
resources(2)
schedule(2)
testing(2)
timeline(2)
产品(2)
数组(2)
同步(2)
图表(2)
系统设计(2)
原型(2)
erlang(1)
bash(1)
vue.js(1)
node.js(1)
android(1)
硬件开发(1)
sqlite(1)
云数据库 Redis(1)
memcached(1)
access(1)
web.py(1)
ruby on rails(1)
tomcat(1)
中文分词(1)
unix(1)
bash 指令(1)
delphi(1)
laravel(1)
VPN 连接(1)
消息队列 CMQ 版(1)
SSL 证书(1)
数据加密服务(1)
物联网通信(1)
DevOps 解决方案(1)
数据备份(1)
express(1)
sass(1)
webpack(1)
xslt & xpath(1)
grunt(1)
shell(1)
html5(1)
wordpress(1)
正则表达式(1)
gui(1)
dns(1)
asp(1)
rabbitmq(1)
spring cloud(1)
lnmp(1)
大数据(1)
微信(1)
windows(1)
数据可视化(1)
系统架构(1)
网站建设(1)
kafka(1)
yii(1)
功能测试(1)
数据集成(1)
即时通信 IM(1)
智能制造(1)
action(1)
agile(1)
alias(1)
allocation(1)
analysis(1)
app(1)
apply(1)
area(1)
axure(1)
byte(1)
calculation(1)
case(1)
class(1)
client(1)
code(1)
com(1)
components(1)
config(1)
constraints(1)
data(1)
dictionary(1)
documentation(1)
draw(1)
dt(1)
field(1)
fill(1)
focus(1)
footer(1)
function(1)
include(1)
installation(1)
int(1)
integration(1)
istio(1)
join(1)
limit(1)
md5(1)
model(1)
module(1)
output(1)
packet(1)
padding(1)
performance(1)
portability(1)
position(1)
ps(1)
release(1)
reporting(1)
request(1)
scheduling(1)
security(1)
service(1)
settings(1)
sf(1)
sketch(1)
smarty(1)
stack(1)
status(1)
string(1)
system(1)
tfs(1)
this(1)
title(1)
tools(1)
transparency(1)
types(1)
umi(1)
view(1)
wiki(1)
word(1)
表格(1)
部署(1)
产品设计(1)
翻译(1)
工作流(1)
监控(1)
兼容性(1)
交互设计(1)
开发(1)
开发经验(1)
前端(1)
权限(1)
日志(1)
事务(1)
优化(1)
云服务(1)
搜索文章
搜索
搜索
关闭
MQTT协议通俗讲解
VPN 连接
基本概念 Basic Conception Session 会话 定义 定义:某个客户端(由ClientID作为标识)和某个服务器之间的逻辑层面的通信 生命周期(存在时间):会话 >= 网络连接 ClientID 客户端唯一标识,服务端用于关联一个Session 只能包含这些 大写字母,小写字母 和 数字(0-9a-zA-Z),23个字符以内 如果 ClientID 在多次 TCP连接中保持一致,客户端和服务器端会保留会话信息(Session) 同一时间内 Server 和同一个 ClientID 只能保持一个 TCP 连接,再次连接会踢掉前一个 CleanSession 标记 在Connect时,由客户端设置 0 —— 开启会话重用机制。网络断开重连后,恢复之前的Session信息。需要客户端和服务器有相关Session持久化机制。 1 —— 关闭会话重用机制。每次Connect都是一个新Session,会话仅持续和网络连接同样长的时间。 客户端 Session 已经发送给服务端,但是还没有完成确认的 QoS 1 和 QoS 2 级别的消息 已从服务端接收,但是还没有完成确认的 QoS 2 级别的消息 服务器端 Session 会话是否存在,即使会话状态的其它部分都是空 (SessionFlag) 客户端的订阅信息 (ClientSubcription) 已经发送给客户端,但是还没有完成确认的 QoS 1 和 QoS 2 级别的消息 即将传输给客户端的 QoS 1 和 QoS 2 级别的消息 已从客户端接收,但是还没有完成确认的 QoS 2 级别的消息 (可选)准备发送给客户端的 QoS 0 级别的消息 长连接维护与管理 Keep Alive 心跳 目的是保持长连接的可靠性,以及双方对彼此是否在线的确认。 客户端在Connect的时候设置 Keep Alive 时长。如果服务端在 1.5 * KeepAlive 时间内没有收到客户端的报文,它必须断开客户端的网络连接 Keep Alive 的值由具体应用指定,一般是几分钟。允许的最大值是 18 小时 12 分 15 秒 Will 遗嘱 遗嘱消息(Will Message)存储在服务端,当网络连接关闭时,服务端必须发布这个遗嘱消息,所以被形象地称之为遗嘱,可用于通知异常断线。 客户端发送 DISCONNECT 关闭链接,遗嘱失效并删除 遗嘱消息发布的条件,包括: 服务端检测到了一个 I/O 错误或者网络故障 客户端在保持连接(Keep Alive)的时间内未能通讯 客户端没有先发送 DISCONNECT 报文直接关闭了网络连接 由于协议错误服务端关闭了网络连接 相关设置项,需要在Connect时,由客户端指定 Will Flag —— 遗嘱的总开关 0 -- 关闭遗嘱功能,Will QoS 和 Will Retain 必须为 0 1 -- 开启遗嘱功能,需要设置 Will Retain 和 Will QoS Will QoS —— 遗嘱消息 QoS 可取值 0、1、2,含义与消息QoS相同 Will Retain —— 遗嘱是否保留 0 -- 遗嘱消息不保留,后面再订阅不会收到消息 1 -- 遗嘱消息保留,持久存储 Will Topic —— 遗嘱话题 Will Payload —— 遗嘱消息内容 消息基本概念 报文标识 Packet Identifier 存在报文的可变报头部分,非零两个字节整数 (0-65535] 一个流程中重复:这些报文包含 PacketID,而且在一次通信流程内保持一致: PUBLISH(QoS>0 时),PUBACK,PUBREC,PUBREL,PUBCOMP SUBSCRIBE, SUBACK UNSUBSCIBE,UNSUBACK 新的不重复:客户端每次发送一个新的这些类型的报文时都必须分配一个当前 未使用的PacketID 当客户端处理完这个报文对应的确认后,这个报文标识符就释放可重用。 独立维护:客户端和服务端彼此独立地分配报文标识符。因此,客户端服务端组合使用相同的报文标识符可以实
PM吃瓜
2019-08-20
2.4K
0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
立即查看
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档