https://github.com/nurislom373/springboot3websocket
Иными словами, STOMP — это протокол сообщений, построенный поверх WebSocket. Он облегчает обмен сообщениями, а также позволяет дополнительно управлять сессией
https://github.com/nurislom373/springboot3websocket
java-17 postman spring spring-boot streaming websocket
Last synced: about 2 months ago
JSON representation
Иными словами, STOMP — это протокол сообщений, построенный поверх WebSocket. Он облегчает обмен сообщениями, а также позволяет дополнительно управлять сессией
- Host: GitHub
- URL: https://github.com/nurislom373/springboot3websocket
- Owner: Nurislom373
- Created: 2025-10-06T12:34:38.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-10-08T04:37:22.000Z (9 months ago)
- Last Synced: 2025-10-08T06:23:01.214Z (9 months ago)
- Topics: java-17, postman, spring, spring-boot, streaming, websocket
- Language: Java
- Homepage:
- Size: 336 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Spring Boot 3 WebSocket
## Введение
WebSocket — это сетевой протокол, который позволяет устанавливать постоянное двустороннее соединение между клиентом (
например, браузером) и сервером через один TCP-канал.
В отличие от HTTP, где каждый запрос клиент должен инициировать заново, WebSocket даёт возможность:
* клиенту и серверу отправлять сообщения в любой момент,
* работать в режиме **реального времени** без постоянных перезапросов.

### Как работает:
1. Клиент сначала делает обычный HTTP-запрос с заголовком Upgrade: websocket.
2. Сервер принимает и переводит соединение из HTTP в WebSocket.
3. После этого соединение остаётся открытым, и стороны могут обмениваться сообщениями до тех пор, пока одно из них не
закроет его.
## STOMP
STOMP (Simple Text Oriented Messaging Protocol) — это простой текстовый протокол обмена сообщениями, который часто
используется поверх WebSocket для организации работы с сообщениями.
Иными словами, STOMP — это протокол сообщений, построенный поверх WebSocket. Он облегчает обмен сообщениями, а также
позволяет дополнительно управлять сессией

### Основная идея:
WebSocket сам по себе — это просто «труба» для передачи данных. Но у него нет встроенного формата сообщений,
маршрутизации или подписок. Здесь на помощь приходит STOMP, который добавляет:
* формат сообщений (заголовки, тело),
* поддержку подписок (`SUBSCRIBE`) и отправки сообщений (`SEND`),
* управление соединением (`CONNECT`, `DISCONNECT`),
* подтверждение доставки (`ACK`, `NACK`).
### Как работает:
1. Клиент подключается к серверу через WebSocket.
2. Поверх WebSocket клиент и сервер начинают говорить на языке STOMP.
3. Клиент может:
* отправлять сообщения в определённый «дестинейшн» (например, /app/chat),
* подписываться на определённые топики (например, /topic/messages),
* получать сообщения от других.
```nginx
SEND
destination:/topic/chat
content-type:text/plain
Привет всем!
^@
```
### Где используется STOMP:
* Spring WebSocket (в Spring Boot очень часто WebSocket интегрируется именно через STOMP),
* системы чатов, уведомлений,
* любые приложения, где нужен брокер сообщений поверх WebSocket.