递归火山软件开发平台

标题: 【MQTT3.1.1客户端】协议封装,无三方模块 - MQTT Client For Voldev [打印本页]

作者: leing    时间: 2023-2-24 01:07
标题: 【MQTT3.1.1客户端】协议封装,无三方模块 - MQTT Client For Voldev
本帖最后由 leing 于 2024-2-24 12:05 编辑

请转移最终版




基于【HPSocket网络通讯支持】模块
直接开源,方便大家了解MQTT协议,我也打包模块了直接引用就能用
例子呢也没有什么好写的就那几个函数简单易懂。
测试用的MQTT公共服务器
免费的公共 MQTT 服务器 | EMQ (emqx.com)

MQTT网页版在线测试工具
MQTT X Web: 在线的 MQTT Websocket 客户端工具

没有其他模块,用到的自己写的函数也写进去了
注:不足之处还请各位大佬指点一二

【修改23-2-24 14:06】
发送消息新增Qos 1 与 Qos 2 方式
连接服务器异常状态断开服务器(按照标准协议来处理)
(, 下载次数: 64)

(, 下载次数: 49)


作者: shuimiao    时间: 2023-2-24 07:43
可以,支持
作者: 山梦    时间: 2023-2-24 07:52
支持支持
作者: itismine    时间: 2023-2-24 08:51
学习一下。

作者: 创世魂    时间: 2023-2-24 08:55
可以的pc版本的mqtt也有了
作者: 阿丘    时间: 2023-2-24 09:12

支持支持
支持支持
作者: aycap    时间: 2023-2-24 09:32
支持支持
作者: hq881128    时间: 2023-2-24 21:37
功能全了吗
作者: leing    时间: 2023-2-24 23:23
hq881128 发表于 2023-2-24 21:37
功能全了吗

还有啥啊 缺什么 连接发送订阅 还有别的么
作者: zxd1022    时间: 2023-3-7 11:21
本帖最后由 zxd1022 于 2023-3-7 13:04 编辑

不太会用,什么都返回真
作者: kingsoft    时间: 2023-3-21 14:22
还是搞个例程出来吧!
小白我要学习呀!
作者: kingsoft    时间: 2023-3-22 22:33
我这一运行全提示错误!可能打开的姿势不对。麻烦还是能搞个例程出来吗?
作者: leing    时间: 2023-3-23 20:34
kingsoft 发表于 2023-3-22 22:33
我这一运行全提示错误!可能打开的姿势不对。麻烦还是能搞个例程出来吗? ...

主题下载吧 我做成例子了
作者: xucy    时间: 2023-3-24 17:30
支持支持:噜阿噜:噜阿噜
作者: 晓龙    时间: 2023-3-26 16:49
服务器异常已经断开了,客户端连接状态断开没有任何返回
作者: kingsoft    时间: 2023-3-27 16:15
leing 发表于 2023-3-23 20:34
主题下载吧 我做成例子了

谢谢!~
作者: 王麻子    时间: 2023-3-27 16:38
这玩意,做什么的?

作者: 山梦    时间: 2023-3-27 17:02
大佬厉害,谢谢!
作者: 君安光电科技    时间: 2023-3-27 23:48
顶~顶~更健康~
作者: zgj9911    时间: 2023-5-11 20:08
楼主,我的怎么无法收到订阅的数据,而且第二次发送消息就卡住发不出去了
作者: zgj9911    时间: 2023-5-11 20:12
Qos为2的时候发送数据会卡住
作者: 唐兀    时间: 2023-6-22 19:17
十六进制文本到整数(),这个方法在哪里的,没找到
作者: hq881128    时间: 2023-8-1 14:51
  1. <火山程序 类型 = "通常" 版本 = 1 />
  2. 调试输出 (2222)
  3. 如果 (取字节集长度 (已接收数据) - 2 == 十六进制文本到整数 (取文本中间 (接收数据, 2, 2)))   //数据太长到这里会不真,没处理了
  4. {
  5.     收到消息 (UTF8到文本 (取字节集中间 (已接收数据, 4, 十六进制文本到整数 (字节集到十六进制文本 (取字节集中间 (已接收数据, 2, 2))))), UTF8到文本 (取字节集右边 (已接收数据, 取字节集长度 (已接收数据) - 4 - 十六进制文本到整数 (字节集到十六进制文本 (取字节集中间 (已接收数据, 2, 2))))))
  6. }
复制代码


作者: hq881128    时间: 2023-8-1 14:52
这个是我发送的文本  :
{
  "ModbusID": "6c000000f0de",
  "Type": "Temp",
  "data": [
    {
      "Way": [
        0
      ],
      "Status": [
        1
      ],
      "Mode": [
        1
      ],
      "Fan": [
        3
      ],
      "SetTem": [
        24
      ],
      "CurTem": [
        25
      ]
    }
  ]
}

2023-08-01 14:01:21:940

Topic: client:report/1QoS: 0

{
  "ModbusID": "6c000000f0de",
  "Type": "Temp",
  "data": [
    {
      "Way": [
        0
      ],
      "Status": [
        1
      ],
      "Mode": [
        1
      ],
      "Fan": [
        3
      ],
      "SetTem": [
        24
      ]
      "CurTem" :[
        25
      ]
    }
  ]




作者: zgj9911    时间: 2023-9-9 12:52
数据包大于1400字节时会收到多个包,好像得组包,可惜我不会,希望楼主能更新一下
作者: hq881128    时间: 2023-10-30 13:58
本帖最后由 hq881128 于 2023-10-30 14:05 编辑
zgj9911 发表于 2023-9-9 12:52
数据包大于1400字节时会收到多个包,好像得组包,可惜我不会,希望楼主能更新一下 ...



(, 下载次数: 40)

(, 下载次数: 42)

在他其基础增加了两个方法,解码和编码,之前接收超过长度就会卡死。

(, 下载次数: 44)
现在最多能处理16383个字节的数据了,需要更多的对着协议可自己改。
另外这东西还是有很多问题不能在项目上用,测试用应该没问题,我用来做了小工具能用。




作者: zgj9911    时间: 2023-10-30 19:04
谢谢楼主:噜阿噜
作者: leing    时间: 2024-1-20 14:46
本帖最后由 leing 于 2024-1-20 15:04 编辑
zgj9911 发表于 2023-9-9 12:52
数据包大于1400字节时会收到多个包,好像得组包,可惜我不会,希望楼主能更新一下 ...

已修复数据量大于127则数据卡住。
关于Qos为1或2卡住也是因为数据量超出了127,导致无法发送
现已修复数据量达到最大值(268435455)

感谢@hq881128 提出解决方案
(, 下载次数: 10)

MQTT Client For Voldev: MQTT Client For Voldev (gitee.com)





欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4