Estou precisando de fazer um chat. Andei pesquisando mas não consegui entender muito.
Configurei assim no pom
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency>
Configuration
package br.com.ghnetsoft.apifinanceiro.configuracao.config; 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 configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/topic"); config.setApplicationDestinationPrefixes("/app"); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS(); } }
E assim no controller
package br.com.ghnetsoft.apifinanceiro.configuracao.resource; import org.springframework.messaging.handler.annotation.MessageMapping; import org.springframework.messaging.handler.annotation.SendTo; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.HtmlUtils; import br.com.ghnetsoft.apifinanceiro.configuracao.dto.Greeting; import br.com.ghnetsoft.apifinanceiro.configuracao.dto.HelloMessage; import lombok.extern.apachecommons.CommonsLog; @CommonsLog @RestController public class GreetingController { @MessageMapping("/mensagem") @SendTo("/envio") public Greeting greeting(HelloMessage message) throws Exception { Thread.sleep(1000); // simulated delay log.info("teste"); return new Greeting("Olá, " + HtmlUtils.htmlEscape(message.getName()) + "!"); } }
no log, só aconteceu isso
2021-04-14 21:42:10.106 INFO 37380 --- [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : Starting...
2021-04-14 21:42:10.107 INFO 37380 --- [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : BrokerAvailabilityEvent[available=true, SimpleBrokerMessageHandler [DefaultSubscriptionRegistry[cache[0 destination(s)], registry[0 sessions]]]]
2021-04-14 21:42:10.107 INFO 37380 --- [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : Started.
2021-04-14 21:42:10.119 INFO 37380 --- [ restartedMain] b.c.g.a.c.ConfiguracaoApiApplication : Started ConfiguracaoApiApplication in 7.56 seconds (JVM running for 8.863)
2021-04-14 21:43:08.620 INFO 37380 --- [MessageBroker-1] o.s.w.s.c.WebSocketMessageBrokerStats : WebSocketSession[0 current WS(0)-HttpStream(0)-HttpPoll(0), 0 total, 0 closed abnormally (0 connect failure, 0 send limit, 0 transport error)], stompSubProtocol[processed CONNECT(0)-CONNECTED(0)-DISCONNECT(0)], stompBrokerRelay[null], inboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], outboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], sockJsScheduler[pool size = 1, active threads = 1, queued tasks = 0, completed tasks = 0]
Esta certo ?
No angular ainda nem começei.