Stomp::__destruct
stomp_close
(PECL stomp >= 0.1.0)
Stomp::__destruct -- stomp_close — Закрывает Stomp-соединение
Описание
Объектно-ориентированный стиль (деструктор):
public bool Stomp::__destruct
( void
)
Процедурный стиль:
bool stomp_close
( resource
$link
)Закрывает ранее открытые соединения.
Список параметров
-
link
-
Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().
Возвращаемые значения
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Примеры
См. stomp_connect().
- Функция Stomp::abort() - Отменяет выполнение текущей транзакции
- Функция Stomp::ack() - Подтверждает получение сообщения
- Функция Stomp::begin() - Создает транзакцию
- Функция Stomp::commit() - Выполняет текущую транзакцию
- Функция Stomp::__construct() - Открывает соединение
- Функция Stomp::__destruct() - Закрывает Stomp-соединение
- Функция Stomp::error() - Возвращает последнюю ошибку Stomp
- Функция Stomp::getReadTimeout() - Возвращает время максимального ожидания операции чтения
- Функция Stomp::getSessionId() - Возвращает идентификатор текущей сессии Stomp
- Функция Stomp::hasFrame() - Проверяет, возможно ли чтение фрейма
- Функция Stomp::readFrame() - Выполняет операцию чтения следующего фрейма
- Функция Stomp::send() - Отправляет сообщение
- Функция Stomp::setReadTimeout() - Устанавливает предельное время ожидания операции чтения
- Функция Stomp::subscribe() - Регистрирует подписку на указанную рассылку
- Функция Stomp::unsubscribe() - Удаляет существующую подписку
Коментарии
Isn't it a little odd to have connect/disconnect in the constructor/destructor methods?
I have a case where the connection is presumably kept alive until the PHP process ends:
<?php
class MyStompWrapper {
public function doSend()
{
$stomp = $this->connect(); // returns Stomp Object
$stomp->send('/destination', 'message', []);
$this->disconnect($stomp);
// $stomp still exists in this scope, hence, the connection is alive
}
private function disconnect(\Stomp $stompObj)
{
// only unsets the local $stomp pointer, does not actually disconnect
unset($stomp);
}
private function connect():\Stomp
{
// try-catch block omitted for example brevity
return new Stomp('url', 'username', 'password');
}
}
?>
This means that, in order to handle disconnecting, I have to create and destroy the Stomp object within the same scope.
Be careful, the lib does not send a DISCONNECT frame on destruction. Therefore the sessions will outlive the instance, accumulating in Artemis servers!