弄个测试用的TCP和MQTT服务
本文最后更新于 2024年6月25日 早上
手里有个CAT.1设备需要用两种通讯上传不同的数据,这两种方式都还是得实实在在建立连接,于是就找找有没有啥省事儿的搭建方式,让在没有服务器开发的时候能自己调试下。
前言
本地肯定是没法搭建的,插4G卡的设备没法用局域网服务,得在有公网IP的地方搭建。找来找去都没啥便宜的,然后发现了移动云可以白嫖一个月,就选择它了。。。但是啊,如果你想一直用千万别进这巨坑,控制台交互shi一样。
1 TCP服务
1.1 环境
想都没想,肯定用python。
- 安装python3
- 安装git
1.2 使用simpletcp
python是直接有TCP的包,但是嘛,习惯性github先搜索一下,找到了这个,直接用岂不更好,懒癌。
1 |
|
进入文件夹,安装下
1 |
|
然后直接进入/examples/echo里面,有两个例程,我们要用server.py这个
vim进去后就改一下IP地址或者端口就好,注意一下是,租的服务器IP地址不是独享的话,是需要填写它的内网地址的。
1 |
|
使用python运行启动
1 |
|
控制阻塞等待接收,来一个消息显示一个,我就是用来调试的,这样就可以咯。
1.3 测试一下
在本地重复上面的操作,但是最后要使用的是client例程,修改文件中的IP地址和端口为服务器,这儿始终填写服务器的外网IP。
1 |
|
运行,不会阻塞,此时服务端收到消息:
1.4 一些开源工具
2 MQTT服务器
2.1 方案一
直接使用开发服务器
1 |
|
2.2 方案二
自己的服务器上安装开源的EMQ X Broker
开源物联网MQTT消息中间件
2.2.1 docker
安装docker
1 |
|
获取镜像
1 |
|
启动
1 |
|
2.3 测试
2.3.1 测试方式一
mqtt免费测试客户端
点击加号创建一个客户端,在弹出框中填写名称,修改服务器地址,其他按需更改。
点击右上角连接,然后点击添加订阅,按需修改topic和QoS,点击确定。此时就开始接收订阅的数据了。
在右下角可以输出topic和消息来发布。该界面可以通过创建两个客户端来互相通信测试MQTT服务器是否搭建好。
2.3.2 测试方式二
也可以通过Mosquitto,先看看程序是否启动了
1 |
|
打开接收
1 |
|
再使用发送
1 |
|
接收端能收到消息
IP地址处可以填写域名,注意服务器需要在安全组中设置流入流出。
- mosquitto_pub发布主题的参数
参数 | 说明 |
---|---|
-d | 打印debug信息 |
-f | 将指定文件的内容作为发送消息的内容 |
-h | 指定要连接的域名 默认为localhost |
-i | 指定要给哪个clientId的用户发送消息 |
-l | 指定给哪个clientId前缀的用户发送消息 |
-m | 消息内容 |
-n | 发送一个空(null)消息 |
-p | 连接端口号 |
-q | 指定QoS的值(0,1,2) |
-t | 指定topic |
-u | 指定broker访问用户 |
-P | 指定broker访问密码 |
-V | 指定MQTT协议版本 |
- mosquitto_sub订阅主题的参数
参数 | 说明 |
---|---|
-d | 打印debug信息 |
-h | 指定要连接的域名 默认为localhost |
-i | 指定要给哪个clientId的用户发送消息 |
-l | 指定给哪个clientId前缀的用户发送消息 |
-k | keepalive 每隔一段时间,发PING消息通知broker,仍处于连接状态。 默认为60秒。 |
-q | 指定希望接收到QoS为什么的消息 默认QoS为0 |
-R | 不显示陈旧的消息 |
-t | 订阅topic |
-v | 打印信息 |