1、导入websocket相关jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
2、新建WebSocketConfig 配置类
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/socket/data").setAllowedOrigins("*").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
// 允许简单代理
registry.enableSimpleBroker("/user/","/topic");
// 连接得前缀
registry.setApplicationDestinationPrefixes("/app");
}
}
3、先导入stomp.js和sockJs.js文件,前端再建立websocket连接
4、后端向前端发送消息
5、这样前端就能实时接收后端发送过来的通知了。
6、前端向后端发送websocket请求时,请求地址需要以 /app为前缀(以本文为例),在后端创建接收请求的controller处理相关业务。
如下前端发送 websocket请求时 (/app/change-notice)就会进入到如下controller中greeting方法。
@Controller
public class GreetingController {
@Resource
private SimpMessagingTemplate simpMessagingTemplate;
@MessageMapping("/change-notice")
public void greeting(String value){
this.simpMessagingTemplate.convertAndSend(
"/topic/noticed", value+"wowoowoo");
}
}