spring boot(二)websocket

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,表示发送消息到指定用户。

猜你喜欢

转载自blog.51cto.com/13580976/2135265