客户端开发

更新时间:
2024-02-20
下载文档

客户端开发

本节介绍 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();
}
文档内容是否对您有所帮助?
有帮助
没帮助