mqtt连接提示:disconnectConnection Refused: not authorised
时间: 2024-04-07 09:28:47 浏览: 12
这个错误提示意味着你的 MQTT 客户端连接被拒绝,因为你没有授权访问该 MQTT 代理服务器。这可能是因为你提供的用户名或密码不正确,或者你没有提供正确的客户端证书。请检查你的连接参数,确保你使用了正确的用户名、密码和证书,并且你被授权访问 MQTT 代理服务器。如果你仍然不能解决问题,请联系 MQTT 代理服务器管理员进行帮助。
相关问题
Mosquitto连接报Connection error: Connection Refused: not authorised.
这个错误通常表示你使用的用户名和密码不正确或者没有授权连接到Mosquitto服务器。你需要检查你的用户名和密码是否正确,并且确认你的用户已经被授权连接到Mosquitto服务器。如果你不确定你的用户名和密码是否正确,可以尝试重置密码或联系Mosquitto管理员进行帮助。此外,你还需要检查Mosquitto服务器的配置文件,确保用户已经被正确地授权连接到服务器。如果以上步骤都没有解决问题,你可以考虑尝试使用其他MQTT客户端进行连接,或者联系Mosquitto技术支持寻求帮助。
c++ paho mqtt库 mqtt::topic 发布 json对象
以下是使用C++ paho mqtt库中的mqtt::topic发布json对象的示例代码:
```c++
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <json/json.h>
#include "mqtt/async_client.h"
using namespace std;
const string ADDRESS("tcp://localhost:1883");
const string CLIENTID("AsyncPublisher");
const string TOPIC("test");
const int QOS = 1;const int TIMEOUT = 10000L;
class callback : public virtual mqtt::callback
{
public:
virtual void connection_lost(const std::string& cause)
{
cout << "\nConnection lost" << endl;
if (!cause.empty())
cout << "\tcause: " << cause << endl;
}
virtual void delivery_complete(mqtt::delivery_token_ptr token)
{
cout << "\n\tDelivery complete for token: "
<< (token ? token->get_message_id() : -1) << endl;
}
};
int main(int argc, char* argv[])
{
mqtt::async_client client(ADDRESS, CLIENTID);
mqtt::connect_options connOpts;
connOpts.set_keep_alive_interval(20);
connOpts.set_clean_session(true);
callback cb;
client.set_callback(cb);
try {
mqtt::token_ptr conntok = client.connect(connOpts);
conntok->wait_for_completion();
Json::Value root;
root["name"] = "John";
root["age"] = 25;
root["email"] = "john@example.com";
string json_str = root.toStyledString();
mqtt::message_ptr pubmsg = mqtt::make_message(TOPIC, json_str);
pubmsg->set_qos(QOS);
mqtt::delivery_token_ptr pubtok = client.publish(pubmsg);
pubtok->wait_for_completion(TIMEOUT);
cout << "Message '" << json_str << "' published to topic '"
<< TOPIC << "'" << endl;
client.disconnect()->wait_for_completion();
}
catch (const mqtt::exception& exc) {
cerr << exc.what() << endl;
return 1;
}
return 0;
}
```
在这个示例中,我们使用了Jsoncpp库来创建一个Json对象,并将其转换为字符串。然后,我们使用mqtt::make_message()函数创建一个mqtt::message_ptr对象,该对象包含要发布的主题和消息。最后,我们使用mqtt::async_client类的publish()函数将消息发布到主题上。