客户端开发
本节介绍 QVSOA 客户端使用发布与订阅的方法。
开发须知
QVSOA 客户端使用发布与订阅时,首先需要确定订阅的 URL 主题,当订阅的主题产生数据时,将进入客户端指定的数据接收接口。
开发示例
假定存在一个 axis_server 服务,提供一个 URL 为 /axis
的主题供客户端订阅云原生验证平台中陀螺仪的信息。
#include <QCoreApplication>
#include <QDebug>
#include <QVsoa>
constexpr char SERVER_PASSWORD[] = "123456";
void onConnected(bool ok, QString info)
{
if (!ok) {
qDebug() << "Connected with server failed!";
return;
}
qDebug() << "Connected with server:" << info;
}
void onDisconnected()
{
qDebug() << "Connection break";
}
void onMessage(QString url, QVsoaPayload payload)
{
qDebug() << "received event:" << url << "payload:" << payload.param();
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// Initilize client
QVsoaClient client;
if (client.isInvalid()) {
qDebug() << "Can not create VSOA client!";
return -1;
}
QObject::connect(&client, &QVsoaClient::connected, onConnected);
QObject::connect(&client, &QVsoaClient::disconnected, onDisconnected);
QObject::connect(&client, &QVsoaClient::message, onMessage);
// Connect to server with password
client.connect2server("vsoa://axis_server", SERVER_PASSWORD);
// Enable automatic connections
client.autoConnect(1000, 500);
// Subscribe /axis
client.subscribe("/axis");
return a.exec();
}