websocket 生成完整的文件
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
package com.vetti.socket;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
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.HandshakeInterceptor;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Map;
|
||||
|
||||
@Configuration
|
||||
@EnableWebSocket
|
||||
public class FileReceiverConfig implements WebSocketConfigurer {
|
||||
|
||||
@Bean
|
||||
public FileReceiverWebSocketHandler fileReceiverWebSocketHandler() {
|
||||
return new FileReceiverWebSocketHandler();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
|
||||
registry.addHandler(fileReceiverWebSocketHandler(), "/voice-websocket")
|
||||
.addInterceptors(handshakeInterceptor())
|
||||
.setAllowedOrigins("*"); // 生产环境需替换为具体域名
|
||||
}
|
||||
|
||||
@Bean
|
||||
public HandshakeInterceptor handshakeInterceptor() {
|
||||
return new HandshakeInterceptor() {
|
||||
@Override
|
||||
public boolean beforeHandshake(org.springframework.http.server.ServerHttpRequest request,
|
||||
org.springframework.http.server.ServerHttpResponse response,
|
||||
org.springframework.web.socket.WebSocketHandler wsHandler,
|
||||
Map<String, Object> attributes) throws Exception {
|
||||
if (request instanceof org.springframework.http.server.ServletServerHttpRequest) {
|
||||
HttpServletRequest servletRequest =
|
||||
((org.springframework.http.server.ServletServerHttpRequest) request).getServletRequest();
|
||||
String clientId = servletRequest.getParameter("clientId");
|
||||
if (clientId != null && !clientId.isEmpty()) {
|
||||
attributes.put("clientId", clientId);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterHandshake(org.springframework.http.server.ServerHttpRequest request,
|
||||
org.springframework.http.server.ServerHttpResponse response,
|
||||
org.springframework.web.socket.WebSocketHandler wsHandler,
|
||||
Exception exception) {
|
||||
// 握手后处理
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user