Advertisement

搞丢了VB6.0 的MQTT代码,今天又扣出来了一个

阅读量:

- 前言

VB 6.0 实在是太古老了,是上个世纪的产物了,现在却还有人在使用。

现在流行的语言都有MQTT的标准库,连接起来很容易。

由于老迈的VB6在这一方面缺乏支持,在过去的两年里,有一个项目需要升级MQTT的支持。然而,在学习过程中仅用了大约一个月的时间去学习和实践Socket编程。同样开发了一个演示文稿(Demo),可惜最终都未保留下来。

这两天又扣了一个出来。

二、开发介绍

1. 开发页面

2. 使用控件

应用了Label、Text、Command、Timer、Winsock等多种控件。为提升界面美观度,并在此基础上进一步增加了Frame和Shape,并用List追踪操作日志。

3. 代码数量

没数,几百行而已

4. 实现的功能

与MQTT Broker 连接,并登录。 断线自动重新连接

订阅Topic

发布Topic

留有操作日志

三、Demo软件介绍

1.运行环境

操作系统 Windows 7.0 或者更高版本。在98或者XP下需要安装VB的运行库。

2.界面说明

右侧是操作日志,最多保存256条

左侧上方栏处为 连接信息,请填写 MQTT Broker服务器地址,默认设置为1883号端口;客户机标识用于身份认证目的,请确保其通常建议随机生成以保证唯一性。

在MQTT Broker 登录成功后,状态指示为绿色

左侧下栏是 主题部分,包括订阅和发布

3. 测试环境说明

需要建立一个基础的MQTT测试环境,并部署一个MQTT Broker服务;或者可以选择寻找现成的MQTT Broker。同时还需要安装一个MQTT客户端应用。

我在测试时候使用的MQTT Broker 是mosquitto 1.6.4版本

MQTT的客户端用的是 Eclipse Paho MQTT Utility

四、部分代码

字符串转UTF-8代码

Public Procedure EncodeToBytes(ByRef sData As String) Into ByRef EncodeResult() As Byte() Note: The length of sData is greater than zero
Declare Variable nSize as Long
Calculate nSize as the result of converting sData from wide characters to multi-byte encoding minus one
If the value of nSize is zero then terminate the current operation early
Reconstruct the EncodeResult array with an index range from zero to the value of nSize minus one
Execute the conversion process for multi-byte encoding using the specified character set and other required parameters
Assign the resulting byte array to EncodeResult and subsequently erase it to free up memory resources
End Public Procedure

五、其他

VB 6.0 MQTT Publish Demo 已经发布,下载连接如下:

<>

等审核通过后,大家就可以测试了。

即便不用VB搞开发,而是做MQTT的一些测试,这个Demo也支持。

全部评论 (0)

还没有任何评论哟~