ubuntu mosquitto使用库函数订阅主题 消息
时间: 2024-02-23 18:01:26 浏览: 68
使用 Mosquitto 库函数在 Ubuntu 上订阅主题并接收消息,需要执行以下步骤:
1. 安装 Mosquitto
在终端中输入以下命令:
```
sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients libmosquitto-dev
```
其中,`libmosquitto-dev` 是 Mosquitto 库的开发文件。
2. 编写代码
在您选择的编程语言中,使用 Mosquitto 库函数编写代码来订阅主题并接收消息。以下是一个 C 语言示例:
```
#include <stdio.h>
#include <mosquitto.h>
void on_message(struct mosquitto *mosq, void *obj, const struct mosquitto_message *msg)
{
printf("Received message: %s\n", (char *)msg->payload);
}
int main()
{
struct mosquitto *mosq = NULL;
int rc;
mosquitto_lib_init();
mosq = mosquitto_new(NULL, true, NULL);
if (!mosq) {
fprintf(stderr, "Error: Out of memory.\n");
return 1;
}
mosquitto_message_callback_set(mosq, on_message);
rc = mosquitto_connect(mosq, "localhost", 1883, 60);
if (rc != MOSQ_ERR_SUCCESS) {
fprintf(stderr, "Error: Could not connect to broker.\n");
mosquitto_destroy(mosq);
return 1;
}
rc = mosquitto_subscribe(mosq, NULL, "test", 0);
if (rc != MOSQ_ERR_SUCCESS) {
fprintf(stderr, "Error: Could not subscribe to topic.\n");
mosquitto_destroy(mosq);
return 1;
}
mosquitto_loop_forever(mosq, -1, 1);
mosquitto_destroy(mosq);
mosquitto_lib_cleanup();
return 0;
}
```
该程序连接到本地代理服务器,并订阅名为 `test` 的主题。当它接收到来自该主题的消息时,将调用 `on_message` 函数来处理消息。
3. 编译和运行代码
在终端中输入以下命令来编译代码:
```
gcc -o subscriber subscriber.c -lmosquitto
```
其中,`subscriber.c` 是您编写的代码文件名。
然后,运行代码:
```
./subscriber
```
现在,您将可以接收来自 `test` 主题的消息。
阅读全文