From 05c0d1cc5892cfc729728975c9fd34c08821524c Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 30 Sep 2021 11:34:05 -0300 Subject: [PATCH] Make messages persistent by default. (#840) --- src/EventSubscriber/StompHeaderEventSubscriber.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/EventSubscriber/StompHeaderEventSubscriber.php b/src/EventSubscriber/StompHeaderEventSubscriber.php index 47792efd..c846e4a1 100644 --- a/src/EventSubscriber/StompHeaderEventSubscriber.php +++ b/src/EventSubscriber/StompHeaderEventSubscriber.php @@ -37,15 +37,16 @@ class StompHeaderEventSubscriber implements EventSubscriberInterface { */ public static function getSubscribedEvents() { return [ - StompHeaderEventInterface::EVENT_NAME => ['baseAuth', -100], + StompHeaderEventInterface::EVENT_NAME => ['baseHeaders', -100], ]; } /** - * Event callback; generate and add base authorization header if none is set. + * Event callback; generate and add base/default headers if not set. */ - public function baseAuth(StompHeaderEventInterface $stomp_event) { + public function baseHeaders(StompHeaderEventInterface $stomp_event) { $headers = $stomp_event->getHeaders(); + if (!$headers->has('Authorization')) { $token = $this->auth->generateToken(); if (empty($token)) { @@ -58,6 +59,13 @@ class StompHeaderEventSubscriber implements EventSubscriberInterface { } } + // In ActiveMQ, STOMP messages are not persistent by default; however, we + // would like them to persist, by default... make it so, unless something + // else has already set the header. + if (!$headers->has('persistent')) { + $headers->set('persistent', 'true'); + } + } }