package de.ph87.home.web; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.context.event.EventListener; import org.springframework.lang.NonNull; import org.springframework.messaging.simp.SimpMessageSendingOperations; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; @Slf4j @Service @RequiredArgsConstructor public class WebSocketService { private final SimpMessageSendingOperations simpMessageSendingOperations; @EventListener(IWebSocketMessage.class) public void send(@NonNull final IWebSocketMessage message) { send(message.getWebsocketTopic(), message); } public void send(@NonNull final List topic, @NonNull final Object message) { final String topicString = topic.stream().map(Object::toString).collect(Collectors.joining("/")); simpMessageSendingOperations.convertAndSend(topicString, message); } }