Как отправить сообщение конкретному вошедшему в систему пользователю с помощью весенних веб-сокетов - PullRequest
0 голосов
/ 28 марта 2019

Я буду использовать mongodb для хранения чатов между пользователями. Я назначил UUID каждому пользователю, когда он регистрируется, и после входа в систему каждый пользователь получает токен JWT для аутентификации сеанса.

Вариант использования:

Пользователь сначала отправит запрос на чат пользователю, с которым он хочет общаться. Если пользователь принимает запрос чата, он может в чате 1-1.


import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/chatWS") // ws connection url
        .setAllowedOrigins("*")
        .withSockJS();
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
         registry.setApplicationDestinationPrefixes("/app")// to send data to ws
         .enableSimpleBroker("/topic"); // to subscribe for real time feed
    }

}

1 Ответ

0 голосов
/ 28 марта 2019

Используйте метод convertAndSendToUser в классе SimpMessageSendingOperations, который доступен в springframework для отправки сообщения определенному пользователю.

convertAndSendToUser(userName,"/topic/message", data);

Для получения более подробной информации см. Следующую ссылку .

...