spring boot 与 webSocket
1. 广播式
1. 在配置类中使用@EnableWebSocketMessageBroker开启websocket支持。
StompEndpointRegistry.addEndpoint(“/endpointWisely”).withSocketJS(); //注册STOMP协议的节点,配置制定的url
StompEndpointRegistry.enableSimpleBroker(“/topic”); //配置消息代理,也是服务端发送消息的url前缀
2.控制器中
@Controller
public class WsController{
@MessageMapping(“/hello”) //浏览器请求路径
@SendTo(“/topic/getResponse”)
public WiselyResponse say(WiselyMessage message){
return new WiselyResponse(“hello”+message);
}
3.页面JS中
var socket = new SockJS(‘/endpointWisely’); //对应config中配置的节点url
stompClient.subscribe(‘/topic/getResponse’) //订阅,浏览器—>服务器,对应controller中@sendTo注解的路径
stompClient.send(‘/hello’) //发送消息,服务器—>浏览器,对应controller中@MessageMapping注解的路径
2.点对点式
SimpMessagingTemplate是Spring-WebSocket内置的一个消息发送工具,可以将消息发送到指定的客户端。
@Controller
public class WsController{
@Autowired
private SimpMessagingTemplate simpMessagingTemplate;
@MessageMapping(“/point2p”) //浏览器请求路径
public void say(String message){
simpMessagingTemplate.convertAndSendToUser(“接受消息的用户”,”/topic/getResponse”, message);
}
}
且js中路径stompClient.subscribe(‘/user/topic/getResponse’),多了一个/user,表示发送消息到指定用户。
原文地址:http://blog.51cto.com/13580976/2135265