cpp程序通过wss协议连接mqtt时连接失败,错误信息:
Error: MQTT error [-1]: socket error
Reason code: 0
请问该怎么办?
链接做了保密处理。我自己ping是可以的。
// 初始化
bool Init() {
string NameStr = "drive_9450648910578_" + GetUuid();
// 创建 MQTT 客户端
mqtt::async_client client("wss://链接.com:443/connect", NameStr);
// 设置回调
MQTTcallback cb;
client.set_callback(cb);
// 设置 SSL/TLS 选项
mqtt::ssl_options sslOpts;
sslOpts.set_enable_server_cert_auth(0); // False选项启用服务器证书的验证
// 设置连接选项
mqtt::connect_options connOpts;
connOpts.set_keep_alive_interval(60); // KeepAlive 时间
connOpts.set_clean_session(true);
connOpts.set_user_name(NameStr);
connOpts.set_password("123456");
connOpts.set_connect_timeout(10); // 设置连接超时时间
connOpts.set_automatic_reconnect(true, 4); // 设置自动重连,重连间隔为 4 秒
connOpts.set_ssl(sslOpts);
try {
// 连接到服务器
client.connect(connOpts)->wait();
// 订阅主题
client.subscribe("bf1_servertools_drive/#", 1)->wait();
// 保持连接
while (true) {
this_thread::sleep_for(chrono::seconds(1));
}
// 断开连接
client.disconnect()->wait();
}
catch (const mqtt::exception& exc) {
cout << "Error: " << exc.what() << endl;
cout << "Reason code: " << exc.get_reason_code() << endl; // 输出 MQTT 错误码
return 0;
}
return 1;
}