当前位置: 首页 > news >正文

e福州app官方网站张家界网站制作

e福州app官方网站,张家界网站制作,WordPress文章数据表,手机优化助手下载为进一步实现一个简易的MQTT服务端,做如下服务端数据结构设计。 1、服务端协议相关的函数 连接 rx_connect() 接收连接请求 Socket中监听,通过第一个字节switch,根据数据创建client对象 tx_connectack() 回复连接响应 处理完成rx_conn…

为进一步实现一个简易的MQTT服务端,做如下服务端数据结构设计。

1、服务端协议相关的函数

连接

rx_connect()

接收连接请求

Socket中监听,通过第一个字节switch,根据数据创建client对象

tx_connectack()

回复连接响应

处理完成rx_connect后,自动处理。

发布

Qos=0

rx_publish()

Qos=0

接收发布数据

Qos=0

Socket中监听,通过第一个字节switch,根据Topic查找client,分发message。

发布

Qos=1

rx_publish()

Qos=1

接收发布数据

Qos=1

Socket中监听,通过第一个字节switch,根据Topic查找client,分发message。

tx_puback()

回复发布响应

处理完成rx_publish()后,自动处理。

发布

Qos=2

rx_publish()

Qos=2

接收发布数据

Qos=2

Socket中监听,通过第一个字节switch,根据Topic查找client,分发message,并且标记状态。

tx_pubrec()

回复发布响应1

处理完成rx_publish()后,自动处理。

rx_pubrel()

接收pubrel数据

Socket中监听,通过第一个字节switch,根据Topic查找client,标记message。

tx_pubcomp()

回复发布响应2

处理完成rx_pubrel()后,自动处理。

订阅

rx_subscribe()

接收订阅数据

Socket中监听,通过第一个字节switch,根据Topic查找Topics列表,将该client添加至topic中。

tx_suback()

回复订阅响应

处理完成rx_suback()后,自动处理。

取消订阅

rx_unsubscribe()

接收取消订阅数据

Socket中监听,通过第一个字节switch,根据Topic查找Topics列表,将该client从topic中删除。

tx_unsuback()

回复取消订阅响应

处理完成rx_unsuback()后,自动处理。

心跳

rx_pingreq()

接收心跳数据

Socket中监听,通过第一个字节switch,根据TCP/IP查找client,更新pingtime。

tx_pingresp()

回复心跳响应

处理完成rx_pingreq()后,自动处理。

断开连接

rx_disconnect

接收断开连接数据

Socket中监听,通过第一个字节switch,根据TCP/IP查找client,将该client从clients中删除。并且将topics中的该client一并删除。

2、服务端数据结构

列表Clients{

  Connect;

  TCP/IP;

  Messages;

Subscribes;

Next_client;}

Client对象列表,clinet属性有连接、TCP/IP、未处理完成的消息、未处理完成的订阅,指向下一个clinet的指针。

Connect{

  Protocolname;

  protocolLevel;

  Connectflage;

  Keepalive;

  Clientid;

  Willtopic;

  Willmessage;

  Username;

  Password

connectflage;}

其中:

Connectflage{

Bit Usernameflag;

Bit Passwordflag;

Bit Willretain;

Bit Willqos;

Bit Willflag;

Bit Cleansession;

Bit Reserved;

}

每个client对象都有一个连接结构体,记录该client的连接参数。

TCP/IP{

  IPaddr;

  Port;

Pingtime;}

Client对象使用的传输物理实现。

列表Messages{

Dup;

Qos;

Retain;

M_uuid;

Messagedata;

Messageflag;

Next_message;}

其中:

Messageflag;

Qos=0:

0->pub;

Qos=1:

0->pub,1->ack

Qos=2:

0->pub,1->ack,2->rel,3->comp

Client对象未处理完成的消息。

列表Subscribes{

Topicfilter;

S_uuid;

Subscribeflag;

Next_subscribe;}

其中:

Subscribeflag;

 0->tx,1->ack

Client对象的订阅。

列表topics{

  Topicname;

Topic;

  Nexttopic;}

其中topic{

  Client;

  Nextclient;

}

topics列表中存放了所有的topic,每个topic中存放了所有订阅该topic的client。

http://www.yayakq.cn/news/160955/

相关文章:

  • 筑巢网站建设怎么样网站推广优化平台
  • 新手学做免费网站软件wordpress win7
  • 企业模板网站vueasp.net 网站修改发布
  • 商丘市做1企业网站的公司1688黄页网品种大全2024
  • 免费建立自己的网站空间国外网站开发技术现状
  • 网站需要多少钱淮南网站制作
  • 网站建设属于高新技术收入吗vi企业设计
  • 外贸电商网站开发查看网站流量的工具
  • 如何开办网站网站备案安全责任书是谁盖章
  • 校史网站开发技术网站的毕业设计怎么做
  • 台州网站优化国外看新闻app推荐
  • 盐山联通大厦 网站建设做服装外单的网站
  • 购物网站制作怎么做东莞网页设计与制作
  • ps如何做网站轮播图动物自己做的网站
  • 网站模板套用湖南岚鸿什么叫网站空间
  • 企业免费网站建设模板wordpress主题git
  • 如何制作网站站点ftp网站后台
  • 网站建设续费的回访话术男生短期培训就业
  • 国企网站建设需要注意鄱阳网站建设多少钱
  • 怎么做类似淘宝网站吗如何统计网站pv
  • 外国电商设计网站有哪些问题青岛网站建设哪里好
  • 旅行网站模板哪里有创建网站的
  • 网站建设功能表太原招聘网站开发
  • 营销型网站建设价值招人制作网站
  • 电子商务网站设计岗位主要是把网站做静态化
  • 建站是什么意思宁波企业网站优化报价
  • 四川住房和城乡建设厅网站打不开新闻热点事件
  • 西安有哪些网站建设外包公司百度资源站长平台
  • 快速优化网站排名软件无为建设局网站
  • 工程建设网站怎么提交免签接口wordpress