mqtt使用

安装mqtt服务器 emqx

官网下载emqx官网

对于ubuntu18.04

wget https://www.emqx.cn/downloads/broker/v4.2.11/emqx-ubuntu20.04-4.2.11-x86_64.deb

sudo apt install ./emqx-ubuntu20.04-4.2.11-x86_64.deb

sudo emqx start
sudo emqx status #查看运行状态
sudo emqx start #启动
sudo emqx stop  #停止
sudo emqx console #进入emqx命令行窗口

在这里插入图片描述

浏览器登录

进入console查看ip和端口信息
在这里插入图片描述
通过http:dashboard 的信息可以登录emqx界面
在这里插入图片描述
默认用户名 admin 密码 public
在这里插入图片描述
在这里插入图片描述

利用工具mqttbox测试emqx能否正常通信

mqttbox下载地址
链接:https://pan.baidu.com/s/1-UyAzC_6Almzod2KogUsdQ
提取码:nyhf
复制这段内容后打开百度网盘手机App,操作更方便哦

打开mqttbox 点击Create MQTT Client
在这里插入图片描述
client name 随便写
protocol选mqtt/tcp
host 填127.0.0.1:1883(可通过 sudo emqx console 查询得到)
username 填admin
密码public
然后点击保存
在这里插入图片描述
添加话题和订阅者
topic to pubish 随便填写
点击Add subscriber添加订阅者,并填写相同的话题
在Payload中填写需要发送的信息

在这里插入图片描述

c语言测试emqx

my_test_pub.c

/*
 * @Description: 测试发布者
 * @Version: 1.0
 * @Author: hanhy
 */

#include "mqttclient.h"
#include <stdio.h>
#include <unistd.h>

int main() {
  mqtt_client_t *client = NULL;

  mqtt_log_init();
  client = mqtt_lease();

  mqtt_set_port(client, "1883");
  mqtt_set_host(client, "127.0.0.1");
  mqtt_set_client_id(client, "pub");
  mqtt_set_user_name(client, "admin");
  mqtt_set_password(client, "public");
  mqtt_set_clean_session(client, 1);

  mqtt_connect(client);

  char buf[100] = {0};
  mqtt_message_t msg;
  memset(&msg, 0, sizeof(msg));
  sprintf(buf, "welcome to mqttclient, this is a publish test...");

  sleep(2);

  mqtt_list_subscribe_topic(client);

  msg.payload = (void *)buf;
  msg.qos = 0;
  while (1) {
    sprintf(
        buf,
        "a rand number: %d ...",
        random_number());
    mqtt_publish(client, "test_topic", &msg);
    printf("sent!!!\n");
    sleep(2);
  }

  while (1) {
    sleep(100);
  }
}

my_test_sub.c

/*
 * @Description: 测试 订阅者
 * @Version: 1.0
 * @Author: hanhy
 */

#include "mqttclient.h"
#include <unistd.h>

static void topic_handler(void *client, message_data_t *msg) {
  (void)client;
  printf("topic: %s message:%s\n", msg->topic_name,
             (char *)msg->message->payload);
}

int main() {
  mqtt_client_t *client = NULL;

  mqtt_log_init();
  client = mqtt_lease();

  mqtt_set_port(client, "1883");
  mqtt_set_host(client, "127.0.0.1");
  mqtt_set_client_id(client, "sub");
  mqtt_set_user_name(client, "admin");
  mqtt_set_password(client, "public");
  mqtt_set_clean_session(client, 1);


  mqtt_connect(client);

  mqtt_subscribe(client, "test_topic", QOS0, topic_handler);

  while (1) {
    sleep(100);
  }
}

测试用例及开源mqtt客户端源代码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海洋2416

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值