Термин «STOMP» не имеет полной формы в английском языке. Однако в контексте веб-разработки STOMP означает простой (или потоковый) протокол обмена текстовыми сообщениями. Это легкий протокол обмена сообщениями, который часто используется для связи в реальном времени между клиентами и серверами.
В этой статье блога мы рассмотрим различные методы и примеры кода, связанные с STOMP в Spring Framework, популярной платформе Java для создания приложений корпоративного уровня.
-
Настройка сервера STOMP с помощью Spring:
Чтобы использовать STOMP в приложении Spring, вам необходимо настроить сервер STOMP. Одним из популярных вариантов является использование поддержки WebSocket, предоставляемой Spring. Вот пример настройки сервера STOMP с помощью Spring:@Configuration @EnableWebSocketMessageBroker public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/topic"); config.setApplicationDestinationPrefixes("/app"); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/ws").withSockJS(); } }
В приведенном выше коде мы включаем брокер сообщений WebSocket и определяем префикс назначения («/topic») для сообщений, отправляемых с сервера клиентам. Мы также указываем префикс назначения приложения («/app») для сообщений, отправляемых от клиентов на сервер. Кроме того, мы регистрируем конечную точку STOMP (“/ws”) для подключения клиентов.
-
Создание контроллера STOMP:
В Spring вы можете определить контроллер STOMP для обработки входящих сообщений STOMP. Вот пример:@Controller public class MessageController { @MessageMapping("/hello") @SendTo("/topic/greetings") public Greeting greeting(HelloMessage message) { return new Greeting("Hello, " + message.getName() + "!"); } }
В приведенном выше коде мы определяем контроллер STOMP, который прослушивает сообщения, отправленные в пункт назначения «/hello». При получении сообщения вызывается метод
greeting
, который создает объектGreeting
и отправляет его в пункт назначения «/topic/greetings». -
Отправка сообщения STOMP от клиента:
Клиенты могут использовать JavaScript или любой другой поддерживаемый язык для отправки сообщений STOMP на сервер. Вот пример использования JavaScript и библиотеки STOMP.js:var socket = new WebSocket('ws://localhost:8080/ws'); var stompClient = Stomp.over(socket); stompClient.connect({}, function() { var message = { name: 'John' }; stompClient.send('/app/hello', {}, JSON.stringify(message)); });
В приведенном выше коде мы устанавливаем соединение WebSocket с сервером STOMP и создаем клиент STOMP, используя библиотеку STOMP.js. После подключения к серверу мы отправляем сообщение STOMP в пункт назначения «/app/hello».
Это всего лишь несколько примеров работы с STOMP в Spring Framework. Доступно множество других функций и возможностей, таких как подписка на темы, обработка ошибок и отправка сообщений конкретным пользователям.