Spring Boot WebSocket 無法@Autowired問題

轉載弱思文章,親測可用鏈接

先要建一個@Configuration

@Configuration
@EnableWebSocket
public class WsConfigure implements WebSocketConfigurer {

	@Bean
	public WsHandler myHandler() {
		return new WsHandler();
	}

	@Override
	public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
		System.out.println("========start web socket================");
		registry.addHandler(myHandler(), "/websocket/tempo").setAllowedOrigins("*");
	}
}

另外建一個handler

@Component
public class WsHandler extends TextWebSocketHandler {

	///@Autowired
	///xxxxxxxxxx xxxxxxxxxx;

	@Override
	public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
		super.afterConnectionClosed(session, status);
		System.out.println("close....");
	}

	@Override
	public void afterConnectionEstablished(WebSocketSession session) throws Exception {
		super.afterConnectionEstablished(session);
	}

	@Override
	protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
        String messageInput=message.getPayload();//接收到的數據
		session.sendMessage(new TextMessage(messageInput+"OK"));//反饋
	}

	@Override
	public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
		super.handleMessage(session, message);
	}

	@Override
	public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
		super.handleTransportError(session, exception);
	}

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章