Spec-Zone.ru › Qt 6.1

Класс 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 в качестве полезной нагрузки для этого запроса. Нулевой указатель устройства рассматривается как пустое содержимое.

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

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

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

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

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

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

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 в качестве полезной нагрузки для этого запроса. Указатель device со значением null обрабатывается как пустое содержимое.

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

См. также 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)

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

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

void QCoapClient::setAckTimeout(uint ackTimeout)

Устанавливает значение, определённое в 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)

Устанавливает значение, определённое в 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.1/qcoapclient.html

Spec-Zone.ru

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