Spring boot 将身份验证头添加到javax.websocket ClientEndpoint
我正试图使用下面的代码连接到websocket服务器端点,但我无法解析Spring boot 将身份验证头添加到javax.websocket ClientEndpoint,spring-boot,websocket,spring-websocket,Spring Boot,Websocket,Spring Websocket,我正试图使用下面的代码连接到websocket服务器端点,但我无法解析container.connectToServer(这个,cec,uri)这个。此方法无法将我的类作为终结点类。这是一个spring boot项目。若我并没有传递config,那个么它会接受,但它无法连接到服务器并返回401。我尝试了许多在线链接,但未能解决此问题。需要如何修复它的帮助 @ClientEndpoint public class TestClassEndpoint { private Session user
container.connectToServer(这个,cec,uri)代码>这个。此方法无法将我的类作为终结点类。这是一个spring boot项目。若我并没有传递config,那个么它会接受,但它无法连接到服务器并返回401。我尝试了许多在线链接,但未能解决此问题。需要如何修复它的帮助
@ClientEndpoint
public class TestClassEndpoint {
private Session userSession = null;
public TestClassEndpoint(URI uri) {
try {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
ClientEndpointConfig cec = ClientEndpointConfig.Builder
.create().configurator(new ClientEndpointConfig.Configurator() {
public void beforeRequest(Map<String, List<String>> headers) {
System.out.println("Setting user cookie in beforeRequest ...");
headers.put("Authorization", Arrays.asList("Basic base64encodedString"));
}
}).build();
container.connectToServer(this, cec, uri);
} catch (Exception e) {
e.printStackTrace();
}
}
@OnOpen
public void onOpen(Session session) {
this.userSession = session;
System.out.println("New connection established");
}
@OnMessage
public void onMessage(String message, Session session) {
System.out.println(message);
}
@OnClose
public void onClose(Session userSession, CloseReason reason) {
this.userSession = null;
System.out.println("connection closed");
}
@OnError
public void onError(Throwable t) {
}
private void sendMessage(ByteBuffer buffer) {
this.userSession.getAsyncRemote().sendBinary(buffer);
}
}
@SpringBootApplication
public class MainApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(TwilioPocApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
URI uri = UriComponentsBuilder.fromUriString("server_url").build().toUri();
new TestClassEndpoint(uri);
}
}