Spaces:
Sleeping
Sleeping
package ai.giskard.learnspringwebsockets; | |
import org.springframework.context.annotation.Bean; | |
import org.springframework.context.annotation.Configuration; | |
import org.springframework.http.server.ServerHttpRequest; | |
import org.springframework.http.server.ServerHttpResponse; | |
import org.springframework.web.socket.*; | |
import org.springframework.web.socket.config.annotation.EnableWebSocket; | |
import org.springframework.web.socket.config.annotation.WebSocketConfigurer; | |
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; | |
import org.springframework.web.socket.server.RequestUpgradeStrategy; | |
import org.springframework.web.socket.server.support.AbstractHandshakeHandler; | |
import java.io.IOException; | |
import java.security.Principal; | |
import java.util.List; | |
import java.util.Map; | |
public class WebSocketConfig implements WebSocketConfigurer { | |
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { | |
registry.addHandler(myHandler(), "/websocket").setHandshakeHandler(new AbstractHandshakeHandler() { | |
public RequestUpgradeStrategy getRequestUpgradeStrategy() { | |
System.out.println("public RequestUpgradeStrategy getRequestUpgradeStrategy() {"); | |
return super.getRequestUpgradeStrategy(); | |
} | |
public void setSupportedProtocols(String... protocols) { | |
System.out.println("public void setSupportedProtocols(String... protocols) {"); | |
super.setSupportedProtocols(protocols); | |
} | |
public String[] getSupportedProtocols() { | |
System.out.println("public String[] getSupportedProtocols() {"); | |
return super.getSupportedProtocols(); | |
} | |
public void start() { | |
System.out.println("public void start() {"); | |
super.start(); | |
} | |
protected void doStart() { | |
System.out.println("protected void doStart() {"); | |
super.doStart(); | |
} | |
public void stop() { | |
System.out.println("public void stop() {"); | |
super.stop(); | |
} | |
protected void doStop() { | |
System.out.println("protected void doStop() {"); | |
super.doStop(); | |
} | |
public boolean isRunning() { | |
System.out.println("public boolean isRunning() {"); | |
return super.isRunning(); | |
} | |
protected void handleInvalidUpgradeHeader(ServerHttpRequest request, ServerHttpResponse response) throws IOException { | |
System.out.println("protected void handleInvalidUpgradeHeader(ServerHttpRequest request, ServerHttpResponse response) throws IOException {"); | |
super.handleInvalidUpgradeHeader(request, response); | |
} | |
protected void handleInvalidConnectHeader(ServerHttpRequest request, ServerHttpResponse response) throws IOException { | |
System.out.println("protected void handleInvalidConnectHeader(ServerHttpRequest request, ServerHttpResponse response) throws IOException {"); | |
super.handleInvalidConnectHeader(request, response); | |
} | |
protected boolean isWebSocketVersionSupported(WebSocketHttpHeaders httpHeaders) { | |
httpHeaders.toSingleValueMap().forEach((k, v) -> System.out.println(k + " -> " + v)); | |
System.out.println("protected boolean isWebSocketVersionSupported(WebSocketHttpHeaders httpHeaders) {"); | |
return super.isWebSocketVersionSupported(httpHeaders); | |
} | |
protected String[] getSupportedVersions() { | |
System.out.println("protected String[] getSupportedVersions() {"); | |
return super.getSupportedVersions(); | |
} | |
protected void handleWebSocketVersionNotSupported(ServerHttpRequest request, ServerHttpResponse response) { | |
System.out.println("protected void handleWebSocketVersionNotSupported(ServerHttpRequest request, ServerHttpResponse response) {"); | |
super.handleWebSocketVersionNotSupported(request, response); | |
} | |
protected boolean isValidOrigin(ServerHttpRequest request) { | |
System.out.println("protected boolean isValidOrigin(ServerHttpRequest request) {"); | |
return super.isValidOrigin(request); | |
} | |
protected String selectProtocol(List<String> requestedProtocols, WebSocketHandler webSocketHandler) { | |
System.out.println("protected String selectProtocol(List<String> requestedProtocols, WebSocketHandler webSocketHandler) {"); | |
return super.selectProtocol(requestedProtocols, webSocketHandler); | |
} | |
protected List<WebSocketExtension> filterRequestedExtensions(ServerHttpRequest request, List<WebSocketExtension> requestedExtensions, List<WebSocketExtension> supportedExtensions) { | |
System.out.println("protected List<WebSocketExtension> filterRequestedExtensions(ServerHttpRequest request, List<WebSocketExtension> requestedExtensions, List<WebSocketExtension> supportedExtensions) {"); | |
return super.filterRequestedExtensions(request, requestedExtensions, supportedExtensions); | |
} | |
protected Principal determineUser(ServerHttpRequest request, WebSocketHandler wsHandler, Map<String, Object> attributes) { | |
System.out.println("protected Principal determineUser(ServerHttpRequest request, WebSocketHandler wsHandler, Map<String, Object> attributes) {"); | |
return super.determineUser(request, wsHandler, attributes); | |
} | |
}); | |
} | |
public WebSocketHandler myHandler() { | |
return new WebSocketHandler() { | |
public void afterConnectionEstablished(WebSocketSession session) throws Exception { | |
System.out.println("afterConnectionEstablished"); | |
} | |
public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception { | |
System.out.println("handleMessage"); | |
} | |
public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { | |
System.out.println("handleTransportError"); | |
} | |
public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception { | |
System.out.println("afterConnectionClosed"); | |
} | |
public boolean supportsPartialMessages() { | |
return false; | |
} | |
}; | |
} | |
} |