PySide6.QtCoap.QCoapClient

class QCoapClient

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

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

你也可以使用一个observe请求。这可以像上面那样使用,或者更方便地与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]])
Parameters:

为给定的securityMode构造一个QCoapClient对象,并将parent设置为父对象。

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

这使用QCoapQUdpConnection进行连接;要使用自定义传输,请子类化QCoapConnection并将实例传递给其他构造函数之一。

cancelObserve(notifiedReply)
Parameters:

notifiedReplyQCoapReply

这是一个重载函数。

使用observe()方法返回的回复notifiedReply取消对资源的观察。

另请参阅

observe()

cancelObserve(url)
Parameters:

urlQUrl

这是一个重载函数。

取消对由url标识的资源的观察。

另请参阅

observe()

deleteResource(request)
Parameters:

请求QCoapRequest

Return type:

QCoapReply

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

deleteResource(url)
Parameters:

urlQUrl

Return type:

QCoapReply

这是一个重载函数。

向目标url发送DELETE请求。

disconnect()

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

注意

在安全模式下,这需要在更改安全配置或连接到另一台服务器之前调用。

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

  • discoveryPath – str

Return type:

QCoapResourceDiscoveryReply

发现给定url处可用的资源,并返回一个新的QCoapResourceDiscoveryReply对象,该对象在响应到达时发出discovered()信号。

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

discover([group=QtCoap.MulticastGroup.AllCoapNodesIPv4[, port=QtCoap.DefaultPort[, discoveryPath=QLatin1String("/.well-known/core")]]])
Parameters:
Return type:

QCoapResourceDiscoveryReply

这是一个重载函数。

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

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

error(reply, error)
Parameters:

每当发生错误时,都会发出此信号。如果错误与特定的QCoapReply无关,则reply参数可以为Noneerror参数包含错误代码。

finished(reply)
Parameters:

回复QCoapReply

每当接收到CoAP回复时,无论是成功还是错误,都会与finished()信号一起发出此信号。reply参数将包含指向刚刚接收到的回复的指针。

另请参阅

error() finished() error()

get(request)
Parameters:

请求QCoapRequest

Return type:

QCoapReply

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

get(url)
Parameters:

urlQUrl

Return type:

QCoapReply

这是一个重载函数。

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

observe(request)
Parameters:

请求QCoapRequest

Return type:

QCoapReply

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

observe(request)
Parameters:

请求QUrl

Return type:

QCoapReply

这是一个重载函数。

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

post(request, device)
Parameters:
Return type:

QCoapReply

这是一个重载函数。

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

注意

在调用此函数之前,设备必须处于打开且可读状态。

post(request[, data=QByteArray()])
Parameters:
Return type:

QCoapReply

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

post(url[, data=QByteArray()])
Parameters:
Return type:

QCoapReply

这是一个重载函数。

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

put(request, device)
Parameters:
Return type:

QCoapReply

这是一个重载函数。

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

注意

在调用此函数之前,设备必须处于打开且可读状态。

put(request[, data=QByteArray()])
Parameters:
Return type:

QCoapReply

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

put(url[, data=QByteArray()])
Parameters:
Return type:

QCoapReply

这是一个重载函数。

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

responseToMulticastReceived(reply, message, sender)
Parameters:

当对多播请求的单播响应到达时,会发出此信号。reply 参数包含指向刚刚收到的回复的指针,message 包含有效载荷和消息详细信息,sender 包含发送者地址。

另请参阅

error() finished() error()

setAckRandomFactor(ackRandomFactor)
Parameters:

ackRandomFactor – 浮点数

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

另请参阅

setAckTimeout()

setAckTimeout(ackTimeout)
Parameters:

ackTimeout – int

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

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

另请参阅

setAckRandomFactor()

setBlockSize(blockSize)
Parameters:

blockSize – int

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

setMaximumRetransmitCount(maximumRetransmitCount)
Parameters:

maximumRetransmitCount – int

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

setMaximumServerResponseDelay(responseDelay)
Parameters:

responseDelay – int

MAX_SERVER_RESPONSE_DELAY值设置为responseDelay,单位为毫秒。默认值为250秒。

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

setMinimumTokenSize(tokenSize)
Parameters:

tokenSize – int

设置最小令牌大小为tokenSize字节。出于安全考虑,建议使用长度至少为4字节的令牌。此参数的默认值为4字节。

setSecurityConfiguration(configuration)
Parameters:

配置QCoapSecurityConfiguration

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

注意

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

另请参阅

disconnect()

setSocketOption(option, value)
Parameters:

将QUdpSocket套接字的option设置为value