Postman по url: ws://localhost:8080/ws , но он что-то не хочет подсоединяться.
Наверное, из-за registry.addEndpoint("/ws").withSockJS();
Может быть, я что-то не так написал, так как не понимаю что я делаю и как лучше сделать.
Поделитесь, если у вас что-то есть на тему вебсокетов, ничего нормально не нашёл.
Ещё вопрос: получается, что на клиенте мне придётся подписываться на каждый chat/{chatId}/message или как? Как бы вы сделали?
Вот мой код:
@Controller
public class WebSocketController {
@MessageMapping("/chat.{chatId}.sendMessage")
@SendTo("/chat/{chatId}/message")
public MessageEntity send(MessageDto messageDto, @DestinationVariable Long chatId) {
// Конвертирую в MessageEntity через сервис
// MessageEntity messageEntity = messageService.createNewMessage(chatId, messageDto);
// Примерно так
return messageEntity;
}
}
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setApplicationDestinationPrefixes("/app");
registry.enableSimpleBroker("/topic");
}
}
Постман не поддерживает полноценно вебсокеты, я сделал локальный мини сайт на js, и тестил через него
Можешь поделиться, пожалуйста, если сохранилось И ещё есть вопрос: на клиенте мне придётся подписываться на каждый chat/{chatId}/message как-то по-другому это нельзя сделать или и так нормально?
Вспомнил, на группы подписываешься, а на чаты между двумя участками (личка) просто отправляешь на топик самого юзера а не на чат
Понял. Спасибо за помощь
Обсуждают сегодня