Для чего используется messagingTemplate в веб-сокете SpringBoot? - PullRequest
0 голосов
/ 03 мая 2018

Я пытался полностью понять концепцию WebSocket, и я наткнулся messagingTemplate.convertAndSendToUser(); и

messagingTemplate.convertAndSend()

пожалуйста, что это за класс и как его можно использовать?

1 Ответ

0 голосов
/ 03 мая 2018

из вики, https://en.wikipedia.org/wiki/WebSocket:

WebSocket - это компьютерный коммуникационный протокол, обеспечивающий полнодуплексные каналы связи по одному TCP-соединению. Протокол WebSocket был стандартизирован IETF как RFC 6455 в 2011 году, а API WebSocket в Web IDL стандартизирован W3C. WebSocket - это протокол TCP, отличный от HTTP.

А от http://blog.teamtreehouse.com/an-introduction-to-websockets:

WebSockets обеспечивает постоянное соединение между клиентом и сервером, которое обе стороны могут использовать для начала отправки данных в любое время. Клиент устанавливает соединение WebSocket с помощью процесса, известного как рукопожатие WebSocket. Этот процесс начинается с того, что клиент отправляет на сервер обычный HTTP-запрос.

В типичном весеннем веб-приложении на стороне HTML (javascript) конструктор EventSource принимает аргумент для конечной точки API REST. Эта конечная точка API REST возвращает SSEemitter, а приложение сохраняет дескриптор этого SSEmitter. Затем, onMessage EventSource вызывается всякий раз, когда вызывается метод отправки на SSEmitter.

Были бы аналогичные способы общения между языками и структурами.

Еще один способ использования webSocket в среде Spring - это использование посредника сообщений на основе HTTP с помощью MessageSendingOperations, для которого предоставляется метод convertAndSend. С помощью этого метода снова сообщение преобразуется с помощью переданного преобразователя и затем отправляется в веб-сокет.

@Autowired
private final MessageSendingOperations<String> messagingTemplate;
....
this.messagingTemplate.convertAndSend(
        "/data", new Random().nextInt(100));

На стороне потребителя абонент потребляет сообщение.

В заключение, websocket - это просто протокол связи. Он не определяет такие вещи, как - Как отправить сообщение только пользователям, которые подписаны на определенную тему, или как отправить сообщение определенному пользователю. Для этого есть другие протоколы, например: STOMP. Вы можете обратиться к полезному блогу по адресу: http://kimrudolph.de/blog/spring-4-websockets-tutorial.

...