- 宣傳官網(wǎng) http://xb.exrick.cn
- 在線Demo http://xboot.exrick.cn
- 開(kāi)源版Github地址 https://github.com/Exrick/x-boot
- 開(kāi)發(fā)文檔 https://www.kancloud.cn/exrick/xboot/1009234
- 獲取完整版 http://xpay.exrick.cn/pay?xboot
Stomp是一種簡(jiǎn)單(流)文本定向消息協(xié)議窖壕,提供了一個(gè)可互操作的鏈接格式忧勿。允許stomp客戶端與任意stomp消息代理(Broker)進(jìn)行交互杉女。STOMP協(xié)議由于設(shè)計(jì)簡(jiǎn)單,易于開(kāi)發(fā)客戶端鸳吸,因此在多種語(yǔ)言和多種平臺(tái)上得到廣泛地應(yīng)用熏挎。
- 添加依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
- 配置類
/**
* @author Exrickx
*/
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketStompConfig implements WebSocketMessageBrokerConfigurer {
/**
* 注冊(cè)stomp端點(diǎn)
* @param registry
*/
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
// 允許使用socketJs方式訪問(wèn) 即可通過(guò)http://IP:PORT/ws來(lái)和服務(wù)端websocket連接
registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS();
}
/**
* 配置信息代理
* @param registry
*/
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
// 訂閱Broker名稱 user點(diǎn)對(duì)點(diǎn) topic廣播即群發(fā)
registry.enableSimpleBroker("/user","/topic");
// 全局(客戶端)使用的消息前綴
registry.setApplicationDestinationPrefixes("/app");
// 點(diǎn)對(duì)點(diǎn)使用的前綴 無(wú)需配置 默認(rèn)/user
registry.setUserDestinationPrefix("/user");
}
}
- 由于只做廣播和點(diǎn)對(duì)點(diǎn)的消息推送,這里只用到訂閱發(fā)布
@Autowired
private SimpMessagingTemplate messagingTemplate;
// 廣播
messagingTemplate.convertAndSend("/topic/subscribe", "您收到了新的系統(tǒng)消息");
// 通過(guò)用戶ID實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)
messagingTemplate.convertAndSendToUser(id,"/queue/subscribe", "您收到了新的消息");