최근 버전 스프링 웹 소켓은 과 함께 작동합니다. SockJS 및 StompJS 라이브러리. 하지만 내 신청서에 테마를 사용하고 싶지 않습니다.. 그렇다면 HTML5 WebSocket API으로 스프링 웹 소켓 어플리케이션을 만들고 스프링 보안으로 어플리케이션을 통합하는 방법은?HTML5 WebSocket API를 사용하여 Spring WebSocket 응용 프로그램을 만드는 방법은 무엇입니까?
1
A
답변
2
sockjs없이 spring websocket을 구성하는 방법에 대한 좋은 예제를 찾을 수 없지만 스프링 문서 사이트에 도움이되는 documentation이 있으며이를 공유하고 싶습니다. HTML5 WebSocket API를 사용하여 Spring WebSocket 응용 프로그램을 만드는 방법은 무엇입니까?
첫째 :은 핸들러 메소드와 같은 작품을 이 BinaryWebSocketHandlerTextWebSocketHandler 또는 확장하는 클래스를 만들고 @Component 주석과 무시의 적절한 method.This 클래스와 주석 컨트롤러에서.
@Component
public class SimpleWebSocketHandler extends TextWebSocketHandler {
@Override
protected void handleTextMessage(WebSocketSession session,
TextMessage message) throws Exception {
// Sends back response to client.
session.sendMessage(new TextMessage("Connection is all right."));
}
}
둘째 :이 annoations 및 무시의 적절한 method.This 클래스를 구성 클래스그 구현 WebSocketConfigurer을 만들고 @Configuration 및 @EnableWebSocket로 주석를 사용 처리기 클래스 이미 만들었습니다.
@Configuration
@EnableWebSocket
public class WebSocketConfigurations implements WebSocketConfigurer {
@Autowired
private SimpleWebSocketHandler simpleWebSocketHandler;
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
// Regsiters a handler for related endpoint.
registry.addHandler(simpleWebSocketHandler, "/chat");
}
}
셋째 : 추가 모든 당신의 봄 보안 구성에 WebSokcet 엔드 포인트. 넷째
httpSecurity.authorizeRequests()
.antMatchers("/chat").permitAll();
: 우리가 만드는 새로운 적절한 URL와 자바 스크립트 웹 소켓 오브제.
// Create WebSocket Object.
var ws = new WebSocket("ws://localhost:8080/chat");
// Runs when connecion is estabilished.
ws.onopen = function() {
// Sends request to server with string value.
ws.send("webSocket");
};
// Runs when response is ready.
// Use event to get response value.
ws.onmessage = function (event) {
};
참고 : 웹 소켓의 URL 형식 : ws://domain:port/endpoint
당신을 감사합니다,하지만 난 스프링 웹 소켓을 사용할 수 있습니다 만 registry.addHandler (simpleWebSocketHandler, "/chat").setAllowedOrigins("*") 후; 그렇지 않으면 302 또는 403 오류가 발생합니다. Spring Security Configuration은 필자의 경우에는 도움이되지 않습니다. – user1742529