31 lines
952 B
Java
31 lines
952 B
Java
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<Object> topic, @NonNull final Object message) {
|
|
final String topicString = topic.stream().map(Object::toString).collect(Collectors.joining("/"));
|
|
simpMessageSendingOperations.convertAndSend(topicString, message);
|
|
}
|
|
|
|
}
|