class QCoapClient#

QCoapClient 类允许应用程序发送 CoAP 请求并接收回复。 更多

Inheritance diagram of PySide6.QtCoap.QCoapClient

摘要#

方法#

信号#

注释

本文档可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译中的问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 创建问题来解决。

详细描述#

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() 函数。

您还可以使用观察请求。这可以像上面一样使用,或者更方便地使用 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 一样使用,但还包含资源列表。

__init__([securityMode=QtCoap.SecurityMode.NoSecurity[, parent=None]])#
参数:

构造用于给定 securityModeQCoapClient 对象,并将 parent 设置为父对象。

securityMode 的默认值是 NoSecurity,这将禁用安全。

这使用 QCoapQUdpConnection 连接;如果需要使用自定义传输,可以派生 QCoapConnection 类,并将实例传递给其他构造函数之一。

cancelObserve(notifiedReply)#
参数:

notifiedReplyQCoapReply

这是一个重载函数。

使用由 observe() 方法返回的 notifiedReply 令牌取消对资源的监视。

另请参阅

observe()

cancelObserve(url)
参数:

urlQUrl

这是一个重载函数。

取消由 url 标识的资源监视。

另请参阅

observe()

deleteResource(request)#
参数:

requestQCoapRequest

返回类型:

QCoapReply

使用 DELETE 方法发送 request 并返回一个新的 QCoapReply 对象。

deleteResource(url)
参数:

urlQUrl

返回类型:

QCoapReply

这是一个重载函数。

向目标 url 发送 DELETE 请求。

disconnect()#

关闭打开的套接字和连接以释放传输。

注释

在安全模式下,在更改安全配置或连接到其他服务器之前需要调用此方法。

discover([group=QtCoap.MulticastGroup.AllCoapNodesIPv4[, port=QtCoap.DefaultPort[, discoveryPath=QLatin1String("/.well-known/core")]]])#
参数:
返回类型:

QCoapResourceDiscoveryReply

这是一个重载函数。

在给定端口加入group的端点发现可用的资源。返回一个新的QCoapResourceDiscoveryReply对象,每当收到响应时都会发出discovered()信号。其中group是CoAP多播组地址之一,默认为AllCoapNodesIPv4 .

发现路径默认为“/.well-known/core”,但可以通过传递不同的路径给discoveryPath来更改。发现过程在RFC 6690中描述。

discover(baseUrl[, discoveryPath=QLatin1String("/.well-known/core")])
参数:
  • baseUrlQUrl

  • discoveryPath – str

返回类型:

QCoapResourceDiscoveryReply

发现给定url下可用的资源,并返回一个新的QCoapResourceDiscoveryReply对象,每当响应到来时都会发出discovered()信号。

发现路径默认为“/.well-known/core”,但可以通过传递不同的路径给discoveryPath来更改。发现过程在RFC 6690中描述。

error(reply, error)#
参数:

当发生错误时发出此信号。如果错误与特定的QCoapReply无关,则reply参数可以是None。参数error包含错误代码。

finished(reply)#
参数:

replyQCoapReply

该信号与finished()信号一同发出,每当接收到CoAP响应(无论是成功或错误)时都会触发。参数reply将包含指向刚刚接收到的响应的指针。

另请参阅

error() finished() error()

get(request)#
参数:

requestQCoapRequest

返回类型:

QCoapReply

使用GET方法发送request,并返回一个新的QCoapReply对象。

get(url)
参数:

urlQUrl

返回类型:

QCoapReply

这是一个重载函数。

url发送GET请求,并返回一个新的QCoapReply对象。

observe(request)#
参数:

requestQCoapRequest

返回类型:

QCoapReply

发送请求以观察目标request,并返回一个新的QCoapReply对象,每当有新的通知到达时,该对象会发出notified()信号。

observe(request)
参数:

requestQUrl

返回类型:

QCoapReply

这是一个重载函数。

发送一个请求来监控目标 url,并返回一个新的 QCoapReply 对象,每当有新的通知到达时,都会发出 notified() 信号。

post(request, device)#
参数:
返回类型:

QCoapReply

这是一个重载函数。

使用 POST 方法发送 request 并返回一个新的 QCoapReply 对象。使用 device 的内容作为此请求的有效负载。空设备被视为空内容。

注释

在调用此函数之前,设备必须已打开并可读。

post(url[, data=QByteArray()])
参数:
返回类型:

QCoapReply

这是一个重载函数。

url 发送 POST 请求并返回一个新的 QCoapReply 对象。使用 data 作为此请求的有效负载。

post(request[, data=QByteArray()])
参数:
返回类型:

QCoapReply

使用 POST 方法发送 request 并返回一个新的 QCoapReply 对象。使用 data 作为此请求的有效负载。如果 data 为空,将使用 request 的有效负载。

put(request, device)#
参数:
返回类型:

QCoapReply

这是一个重载函数。

使用 PUT 方法发送 request 并返回一个新的 QCoapReply 对象。使用 device 的内容作为此请求的有效负载。空设备被视为空内容。

注释

在调用此函数之前,设备必须已打开并可读。

put(request[, data=QByteArray()])
参数:
返回类型:

QCoapReply

使用 PUT 方法发送 request 并返回一个新的 QCoapReply 对象。使用 data 作为此请求的有效负载。如果 data 为空,将使用 request 的有效负载。

put(url[, data=QByteArray()])
参数:
返回类型:

QCoapReply

这是一个重载函数。

url 发送 PUT 请求并返回一个新的 QCoapReply 对象。使用 data 作为此请求的有效负载。

responseToMulticastReceived(reply, message, sender)#
参数:

当接收到针对组播请求的单一响应时,会发射此信号。参数 reply 包含刚刚收到的响应的指针,message 包含有效载荷和消息细节,而 sender 包含发送者的地址。

另请参阅

error() finished() error()

setAckRandomFactor(ackRandomFactor)#
参数:

ackRandomFactor – float

设置在 RFC 7252 - 第 4.2 节 中定义的 ACK_RANDOM_FACTOR 值为 ackRandomFactor。此值应大于或等于 1。默认为 1.5。

另请参阅

setAckTimeout()

setAckTimeout(ackTimeout)#
参数:

ackTimeout – int

RFC 7252 - 第 4.2 节 中定义的 ACK_TIMEOUT 值设置为以毫秒为单位的 ackTimeout。默认为 2000 ms。

此超时仅适用于可确认的消息。可靠传输的实际超时值是在 ACK_TIMEOUTACK_TIMEOUT * ACK_RANDOM_FACTOR 之间的随机值。

另请参阅

setAckRandomFactor()

setBlockSize(blockSize)#
参数:

blockSize – int

在发送请求和接收响应时,将协议使用的最大块大小设置为 blockSize。块大小必须是 2 的幂。

setMaximumRetransmitCount(maximumRetransmitCount)#
参数:

maximumRetransmitCount – int

RFC 7252 - 第 4.2 节 中定义的 MAX_RETRANSMIT 值设置为 maximumRetransmitCount。此值应小于或等于 25。默认为 4。

setMaximumServerResponseDelay(responseDelay)#
参数:

responseDelay – int

MAX_SERVER_RESPONSE_DELAY 的值设置为毫秒数的 responseDelay。默认值为 250 秒。

正如在RFC 7390 - 第2.5节 中定义的那样,MAX_SERVER_RESPONSE_DELAY 是客户端可以向其发送组播请求的所有服务器上预期的最大响应延迟。

setMinimumTokenSize(tokenSize)#
参数:

tokenSize – int

将最小令牌大小设置为字节数的 tokenSize。由于安全原因,建议使用至少4字节的令牌。此参数的默认值为4字节。

setSecurityConfiguration(configuration)#
参数:

configurationQCoapSecurityConfiguration

configuration 设置安全配置参数。如果使用 NoSecurity 模式,则配置将被忽略。

注释

此方法必须在握手开始之前调用。如果您在建立与服务器加密连接后需要更改安全配置,则客户端需要先断开连接。

另请参阅

disconnect()

setSocketOption(option, value)#
参数:

将 QUdpSocket 的 option 设置为 value