Spec-Zone.ru › Qt

Класс QCoapClient

Класс QCoapClient позволяет приложению отправлять запросы CoAP и получать ответы. Подробнее...

Заголовок: #include <QCoapClient>
qmake: QT += coap
Наследует: QObject
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются перевходными.

Открытые функции

QCoapClient(QtCoap::SecurityMode securityMode = QtCoap::SecurityMode::NoSecurity, QObject *parent = nullptr)
virtual ~QCoapClient()
void cancelObserve(QCoapReply *notifiedReply)
void cancelObserve(const QUrl &url)
QCoapReply * deleteResource(const QCoapRequest &request)
QCoapReply * deleteResource(const QUrl &url)
void disconnect()
QCoapResourceDiscoveryReply * discover(const QUrl &url, const QString &discoveryPath = QLatin1String("/.well-known/core"))
QCoapResourceDiscoveryReply * discover(QtCoap::MulticastGroup group = QtCoap::MulticastGroup::AllCoapNodesIPv4, int port = QtCoap::DefaultPort, const QString &discoveryPath = QLatin1String("/.well-known/core"))
QCoapReply * get(const QCoapRequest &request)
QCoapReply * get(const QUrl &url)
QCoapReply * observe(const QCoapRequest &request)
QCoapReply * observe(const QUrl &url)
QCoapReply * post(const QCoapRequest &request, const QByteArray &data = QByteArray())
QCoapReply * post(const QCoapRequest &request, QIODevice *device)
QCoapReply * post(const QUrl &url, const QByteArray &data = QByteArray())
QCoapReply * put(const QCoapRequest &request, const QByteArray &data = QByteArray())
QCoapReply * put(const QCoapRequest &request, QIODevice *device)
QCoapReply * put(const QUrl &url, const QByteArray &data = QByteArray())
void setAckRandomFactor(double ackRandomFactor)
void setAckTimeout(uint ackTimeout)
void setBlockSize(quint16 blockSize)
void setMaximumRetransmitCount(uint maximumRetransmitCount)
void setMaximumServerResponseDelay(uint responseDelay)
void setMinimumTokenSize(int tokenSize)
void setSecurityConfiguration(const QCoapSecurityConfiguration &configuration)
void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value)

Сигналы

void error(QCoapReply *reply, QtCoap::Error error)
void finished(QCoapReply *reply)
void responseToMulticastReceived(QCoapReply *reply, const QCoapMessage &message, const QHostAddress &sender)

Подробное описание

Класс QCoapClient содержит сигналы, которые срабатывают при получении ответа на отправленный запрос.

Приложение может использовать QCoapClient для отправки запросов по сети CoAP. Он предоставляет функции для стандартных запросов: каждый возвращает объект QCoapReply, в который должна быть доставлена ​​данные ответа; это можно прочитать, когда прибудет сигнал finished().

Простой запрос можно отправить следующим образом:

QCoapClient *client = new QCoapClient(this);
connect(client, &QCoapClient::finished, this, &TestClass::slotFinished);
client->get(QCoapRequest(Qurl("coap://coap.me/test")));

Примечание: После завершения обработки запроса пользователь несет ответственность за удаление объекта QCoapReply в соответствующее время. Не удаляйте его напрямую внутри слота, подключенного к finished(). Можно использовать функцию deleteLater().

Также можно использовать запрос observe. Это можно использовать как выше, или более удобно с сигналом QCoapReply::notified():

QCoapRequest request = QCoapRequest(Qurl("coap://coap.me/obs"));
QCoapReply *reply = client->observe(request);
connect(reply, &QCoapReply::notified, this, &TestClass::slotNotified);

И наблюдение можно отменить следующим образом:

client->cancelObserve(reply);

Когда приходит ответ, QCoapClient генерирует сигнал finished().

Примечание: Для запроса обнаружения возвращаемый объект является QCoapResourceDiscoveryReply. Он может использоваться так же, как QCoapReply, но также содержит список ресурсов.

См. также QCoapRequest, QCoapReply и QCoapResourceDiscoveryReply.

Документация по функциям-членам

QCoapClient::QCoapClient(QtCoap::SecurityMode securityMode = QtCoap::SecurityMode::NoSecurity, QObject *parent = nullptr)

Создает объект QCoapClient для заданного securityMode и устанавливает parent в качестве родительского объекта.

По умолчанию для securityMode установлено QtCoap::NoSecurity, что отключает безопасность.

Это соединение выполняется с помощью QCoapQUdpConnection; для использования пользовательского транспорта следует переопределить QCoapConnection и передать экземпляр в один из других конструкторов.

[signal] void QCoapClient::error(QCoapReply *reply, QtCoap::Error error)

Этот сигнал генерируется всякий раз, когда возникает ошибка. Параметр reply может быть nullptr если ошибка не связана с определенным объектом QCoapReply. Параметр error содержит код ошибки.

См. также finished(), QCoapReply::error() и QCoapReply::finished().

[signal] void QCoapClient::finished(QCoapReply *reply)

Этот сигнал генерируется вместе с сигналом QCoapReply::finished() всякий раз, когда получен ответ CoAP, после успешного завершения или ошибки. Параметр reply будет содержать указатель на только что полученный ответ.

См. также error(), QCoapReply::finished() и QCoapReply::error().

[signal] void QCoapClient::responseToMulticastReceived(QCoapReply *reply, const QCoapMessage &message, const QHostAddress &sender)

Этот сигнал испускается, когда приходит одноадресной ответ на многоадресную запрос. Параметр reply содержит указатель на ответ, который только что был получен, message содержит полезную нагрузку и детали сообщения, а sender содержит адрес отправителя.

См. также error(), QCoapReply::finished(), и QCoapReply::error().

[virtual] QCoapClient::~QCoapClient()

Удаляет объект QCoapClient и освобождает все ресурсы. Обратите внимание, что объекты QCoapReply, возвращаемые этим классом, имеют QCoapClient в качестве родителя, что означает, что они будут удалены вместе с ним.

void QCoapClient::cancelObserve(QCoapReply *notifiedReply)

Это перегруженный метод.

Отменяет наблюдение за ресурсом, используя ответ notifiedReply, возвращённый методом observe().

См. также observe().

void QCoapClient::cancelObserve(const QUrl &url)

Это перегруженный метод.

Отменяет наблюдение за ресурсом, определяемым url.

См. также observe().

QCoapReply *QCoapClient::deleteResource(const QCoapRequest &request)

Отправляет request с помощью метода DELETE и возвращает новый объект QCoapReply.

См. также get(), put(), post(), observe(), и discover().

QCoapReply *QCoapClient::deleteResource(const QUrl &url)

Это перегруженный метод.

Отправляет запрос DELETE на целевой url.

См. также get(), put(), post(), observe(), и discover().

void QCoapClient::disconnect()

Закрывает открытые сокеты и соединения, чтобы освободить транспорт.

Примечание: В защищенном режиме это нужно вызывать перед изменением конфигурации безопасности или подключением к другому серверу.

См. также setSecurityConfiguration().

QCoapResourceDiscoveryReply *QCoapClient::discover(const QUrl &url, const QString &discoveryPath = QLatin1String("/.well-known/core"))

Определяет доступные ресурсы по заданному url и возвращает новый объект QCoapResourceDiscoveryReply, который испускает сигнал QCoapResourceDiscoveryReply::discovered() всякий раз, когда приходит ответ.

Путь обнаружения по умолчанию "/.well-known/core", но его можно изменить, передав другой путь в discoveryPath. Обнаружение описано в RFC 6690.

См. также get(), post(), put(), deleteResource(), и observe().

QCoapResourceDiscoveryReply *QCoapClient::discover(QtCoap::MulticastGroup group = QtCoap::MulticastGroup::AllCoapNodesIPv4, int port = QtCoap::DefaultPort, const QString &discoveryPath = QLatin1String("/.well-known/core"))

Это перегруженный метод.

Обнаруживает доступные ресурсы на конечных точках, которые присоединились к group на заданном port. Возвращает новый объект QCoapResourceDiscoveryReply, который испускает сигнал QCoapResourceDiscoveryReply::discovered() при получении ответа. Параметр group — это один из многоадресных адресов CoAP и по умолчанию равен QtCoap::AllCoapNodesIPv4.

Путь обнаружения по умолчанию "/.well-known/core", но его можно изменить, передав другой путь в discoveryPath. Обнаружение описано в RFC 6690.

См. также get(), post(), put(), deleteResource(), и observe().

QCoapReply *QCoapClient::get(const QCoapRequest &request)

Отправляет request с помощью метода GET и возвращает новый объект QCoapReply.

См. также post(), put(), deleteResource(), observe(), и discover().

QCoapReply *QCoapClient::get(const QUrl &url)

Это перегруженный метод.

Отправляет запрос GET на url и возвращает новый объект QCoapReply.

См. также post(), put(), deleteResource(), observe(), и discover().

QCoapReply *QCoapClient::observe(const QCoapRequest &request)

Отправляет запрос на наблюдение за целевым ресурсом request и возвращает новый объект QCoapReply, который испускает сигнал QCoapReply::notified() при поступлении нового уведомления.

См. также cancelObserve(), get(), post(), put(), deleteResource(), и discover().

QCoapReply *QCoapClient::observe(const QUrl &url)

Это перегруженный метод.

Отправляет запрос на наблюдение за целевым ресурсом url и возвращает новый объект QCoapReply, который испускает сигнал QCoapReply::notified() при поступлении нового уведомления.

См. также cancelObserve(), get(), post(), put(), deleteResource(), и discover().

QCoapReply *QCoapClient::post(const QCoapRequest &request, const QByteArray &data = QByteArray())

Отправляет request с помощью метода POST и возвращает новый объект QCoapReply. Использует data в качестве полезной нагрузки для этого запроса. Если data пустая, используется полезная нагрузка из request.

См. также get(), put(), deleteResource(), observe(), и discover().

QCoapReply *QCoapClient::post(const QCoapRequest &request, QIODevice *device)

Это перегруженный метод.

Отправляет request с помощью метода POST и возвращает новый объект QCoapReply. Использует содержимое device как полезную нагрузку для этого запроса. Указатель null на device рассматривается как пустое содержимое.

Примечание: Устройство должно быть открыто и доступно для чтения перед вызовом этой функции.

См. также get(), put(), deleteResource(), observe(), и discover().

QCoapReply *QCoapClient::post(const QUrl &url, const QByteArray &data = QByteArray())

Это перегруженный метод.

Отправляет запрос POST на url и возвращает новый объект QCoapReply. Использует data в качестве полезной нагрузки для этого запроса.

См. также get(), put(), deleteResource(), observe(), и discover().

END_OF_DOCUMENT_MARKER

QCoapReply *QCoapClient::put(const QCoapRequest &request, const QByteArray &data = QByteArray())

Отправляет request с помощью метода PUT и возвращает новый объект QCoapReply. Использует data в качестве полезной нагрузки для этого запроса. Если data пустая, используется полезная нагрузка из request.

См. также get(), post(), deleteResource(), observe(), и discover().

QCoapReply *QCoapClient::put(const QCoapRequest &request, QIODevice *device)

Это перегруженная функция.

Отправляет request с помощью метода PUT и возвращает новый объект QCoapReply. Использует содержимое device в качестве полезной нагрузки для этого запроса. Указатель на null device обрабатывается как пустое содержимое.

Примечание: Устройство должно быть открыто и доступно для чтения перед вызовом этой функции.

См. также get(), post(), deleteResource(), observe(), и discover().

QCoapReply *QCoapClient::put(const QUrl &url, const QByteArray &data = QByteArray())

Это перегруженная функция.

Отправляет запрос PUT на url и возвращает новый объект QCoapReply. Использует data в качестве полезной нагрузки для этого запроса.

См. также get(), post(), deleteResource(), observe(), и discover().

void QCoapClient::setAckRandomFactor(double ackRandomFactor)

Устанавливает значение ACK_RANDOM_FACTOR, определенное в RFC 7252 - Раздел 4.2, на ackRandomFactor. Это значение должно быть больше или равно 1. По умолчанию 1.5.

См. также setAckTimeout().

void QCoapClient::setAckTimeout(uint ackTimeout)

Устанавливает значение ACK_TIMEOUT, определенное в RFC 7252 - Раздел 4.2, на ackTimeout в миллисекундах. По умолчанию 2000 мс.

Этот таймаут применяется только к подтверждаемым сообщениям. Фактический таймаут для надежных передач — случайное значение между ACK_TIMEOUT и ACK_TIMEOUT * ACK_RANDOM_FACTOR.

См. также setAckRandomFactor().

void QCoapClient::setBlockSize(quint16 blockSize)

Устанавливает максимальный размер блока, используемый протоколом, на blockSize при отправке запросов и получении ответов. Размер блока должен быть степенью двойки.

void QCoapClient::setMaximumRetransmitCount(uint maximumRetransmitCount)

Устанавливает значение MAX_RETRANSMIT, определенное в RFC 7252 - Раздел 4.2, на maximumRetransmitCount. Это значение должно быть меньше или равно 25. По умолчанию 4.

void QCoapClient::setMaximumServerResponseDelay(uint responseDelay)

Устанавливает значение MAX_SERVER_RESPONSE_DELAY на responseDelay в миллисекундах. По умолчанию 250 секунд.

Как определено в RFC 7390 - Раздел 2.5, MAX_SERVER_RESPONSE_DELAY — ожидаемый максимальный задержка ответа от всех серверов, которым клиент может отправить многоадресную заявку.

void QCoapClient::setMinimumTokenSize(int tokenSize)

Устанавливает минимальный размер токена на tokenSize в байтах. По соображениям безопасности рекомендуется использовать токены длиной не менее 4 байтов. Значение по умолчанию для этого параметра — 4 байта.

void QCoapClient::setSecurityConfiguration(const QCoapSecurityConfiguration &configuration)

Устанавливает параметры конфигурации безопасности из configuration. Конфигурация будет проигнорирована, если используется режим QtCoap::NoSecurity.

Примечание: Этот метод должен быть вызван до начала рукопожатия. Если вам нужно изменить конфигурацию безопасности после установления защищенного соединения с сервером, клиент должен быть сначала отключен.

См. также disconnect().

void QCoapClient::setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value)

Устанавливает параметр сокета QUdpSocket option на value.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qcoapclient.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API