
【主 题】:提交runing字段 【描 述】: [原因]:正则匹配 bind_route 添加runing字段 PS:对应取出bind_route的, 即分割符 [过程]: [影响]: 【结 束】
77 lines
1.6 KiB
PHP
77 lines
1.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace PhpMqtt\Client;
|
|
|
|
use DateTime;
|
|
|
|
/**
|
|
* Represents a pending message.
|
|
*
|
|
* For messages with QoS 1 and 2 the client is responsible to resend the message if no
|
|
* acknowledgement is received from the broker within a given time period.
|
|
*
|
|
* This class serves as common base for message objects which need to be resent if no
|
|
* acknowledgement is received.
|
|
*
|
|
* @package PhpMqtt\Client
|
|
*/
|
|
abstract class PendingMessage
|
|
{
|
|
private int $sendingAttempts = 1;
|
|
private DateTime $lastSentAt;
|
|
|
|
/**
|
|
* Creates a new pending message object.
|
|
*/
|
|
protected function __construct(private int $messageId, DateTime $sentAt = null)
|
|
{
|
|
$this->lastSentAt = $sentAt ?? new DateTime();
|
|
}
|
|
|
|
/**
|
|
* Returns the message identifier.
|
|
*/
|
|
public function getMessageId(): int
|
|
{
|
|
return $this->messageId;
|
|
}
|
|
|
|
/**
|
|
* Returns the date time when the message was last sent.
|
|
*/
|
|
public function getLastSentAt(): DateTime
|
|
{
|
|
return $this->lastSentAt;
|
|
}
|
|
|
|
/**
|
|
* Returns the number of times the message has been sent.
|
|
*/
|
|
public function getSendingAttempts(): int
|
|
{
|
|
return $this->sendingAttempts;
|
|
}
|
|
|
|
/**
|
|
* Sets the date time when the message was last sent.
|
|
*/
|
|
public function setLastSentAt(DateTime $value = null): self
|
|
{
|
|
$this->lastSentAt = $value ?? new DateTime();
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Increments the sending attempts by one.
|
|
*/
|
|
public function incrementSendingAttempts(): self
|
|
{
|
|
$this->sendingAttempts++;
|
|
|
|
return $this;
|
|
}
|
|
}
|