我试图弄清楚如何使用Alepez的GitHub Project MosQtitto实现多个MqttClient。如何使用GitHub项目中的MqttClientSingletonClass项目MosQtitto?
https://github.com/alepez/MosQtitto
一台客户机与MqttClient类创建的,但我不知道如何使用MqttClientSingleton类中main.qml创建多个客户端(App.qml的项目)。
MqttClientSingleton.hpp
#ifndef MQTTCLIENTSINGLETON_HPP
#define MQTTCLIENTSINGLETON_HPP
#include "MqttClient.hpp"
class MqttClientSingleton {
public:
static MqttClient* get();
static void set(MqttClient*);
};
#endif // MQTTCLIENTSINGLETON_HPP
MqttClientSingleton.cpp
#include "MqttClientSingleton.hpp"
#include <QDebug>
static MqttClient* instance{nullptr};
MqttClient* MqttClientSingleton::get() {
return instance;
}
void MqttClientSingleton::set(MqttClient* newInstance) {
instance = newInstance;
}
我觉得班里有与
qmlRegisterSingletonType注册
在main.qml中使用它。有人知道如何注册它以及如何使用它来实现多个客户端?
谢谢你的回答! – JohnnyWaker
Apperently我错了有关使用MqttClientSingleton。我试图使用它的原因是因为在main.qml中使用MqttClient两次时出现“连接错误”。 我的MqttClient实例具有不同的ID,但不知何故它们会相互干扰。你对我有一个最小的例子,main.qml中的两个实例是怎么样的? 添加第二个客户端实例时,是否需要在main.cpp中更改某些内容? – JohnnyWaker
我已经更新了我的项目。现在这个例子使用两个MqttClient实例,它们工作正常。 –