spring boot(二)websocket
1. 廣播式
1. 在配置類中使用@EnableWebSocketMessageBroker開啟websocket支持。
StompEndpointRegistry.addEndpoint(“/endpointWisely”).withSocketJS(); //註冊STOMP協議的節點,配置制定的url
StompEndpointRegistry.enableSimpleBroker(“/topic”); //配置消息代理,也是服務端發送消息的url前綴
2.控制器中
@Controller
public class WsController{
@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,表示發送消息到指定用戶。
spring boot(二)websocket