org.springframework.web.socket.WebSocketHttpHeaders类的使用及代码示例

x33g5p2x  于2022-02-03 转载在 其他  
字(10.9k)|赞(0)|评价(0)|浏览(282)

本文整理了Java中org.springframework.web.socket.WebSocketHttpHeaders类的一些代码示例,展示了WebSocketHttpHeaders类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。WebSocketHttpHeaders类的具体详情如下:
包路径:org.springframework.web.socket.WebSocketHttpHeaders
类名称:WebSocketHttpHeaders

WebSocketHttpHeaders介绍

[英]An org.springframework.http.HttpHeaders variant that adds support for the HTTP headers defined by the WebSocket specification RFC 6455.
[中]一个组织。springframework。http。HttpHeaders变体,增加了对WebSocket规范RFC 6455定义的HTTP头的支持。

代码示例

代码示例来源:origin: spring-projects/spring-framework

  1. WebSocketHandler wsHandler, Map<String, Object> attributes) throws HandshakeFailureException {
  2. WebSocketHttpHeaders headers = new WebSocketHttpHeaders(request.getHeaders());
  3. if (logger.isTraceEnabled()) {
  4. logger.trace("Processing request " + request.getURI() + " with headers=" + headers);
  5. if (!"WebSocket".equalsIgnoreCase(headers.getUpgrade())) {
  6. handleInvalidUpgradeHeader(request, response);
  7. return false;
  8. if (!headers.getConnection().contains("Upgrade") && !headers.getConnection().contains("upgrade")) {
  9. handleInvalidConnectHeader(request, response);
  10. return false;
  11. return false;
  12. String wsKey = headers.getSecWebSocketKey();
  13. if (wsKey == null) {
  14. if (logger.isErrorEnabled()) {
  15. String subProtocol = selectProtocol(headers.getSecWebSocketProtocol(), wsHandler);
  16. List<WebSocketExtension> requested = headers.getSecWebSocketExtensions();
  17. List<WebSocketExtension> supported = this.requestUpgradeStrategy.getSupportedExtensions(request);
  18. List<WebSocketExtension> extensions = filterRequestedExtensions(request, requested, supported);

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Set the origin to use.
  3. */
  4. public void setOrigin(@Nullable String origin) {
  5. this.headers.setOrigin(origin);
  6. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Set the sub-protocols to use. If configured, specified sub-protocols will be
  3. * requested in the handshake through the {@code Sec-WebSocket-Protocol} header. The
  4. * resulting WebSocket session will contain the protocol accepted by the server, if
  5. * any.
  6. */
  7. public void setSubProtocols(List<String> protocols) {
  8. this.headers.setSecWebSocketProtocol(protocols);
  9. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Provide default headers to add to the WebSocket handshake request.
  3. */
  4. public void setHeaders(HttpHeaders headers) {
  5. this.headers.clear();
  6. this.headers.putAll(headers);
  7. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Sets the (new) value of the {@code Sec-WebSocket-Protocol} header.
  3. * @param secWebSocketProtocols the value of the header
  4. */
  5. public void setSecWebSocketProtocol(List<String> secWebSocketProtocols) {
  6. set(SEC_WEBSOCKET_PROTOCOL, toCommaDelimitedString(secWebSocketProtocols));
  7. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Returns the value of the {@code Sec-WebSocket-Key} header.
  3. * @return the value of the header
  4. */
  5. public List<String> getSecWebSocketProtocol() {
  6. List<String> values = get(SEC_WEBSOCKET_PROTOCOL);
  7. if (CollectionUtils.isEmpty(values)) {
  8. return Collections.emptyList();
  9. }
  10. else if (values.size() == 1) {
  11. return getValuesAsList(SEC_WEBSOCKET_PROTOCOL);
  12. }
  13. else {
  14. return values;
  15. }
  16. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void subProtocolCapableHandlerNoMatch() {
  3. given(this.upgradeStrategy.getSupportedVersions()).willReturn(new String[] {"13"});
  4. this.servletRequest.setMethod("GET");
  5. WebSocketHttpHeaders headers = new WebSocketHttpHeaders(this.request.getHeaders());
  6. headers.setUpgrade("WebSocket");
  7. headers.setConnection("Upgrade");
  8. headers.setSecWebSocketVersion("13");
  9. headers.setSecWebSocketKey("82/ZS2YHjEnUN97HLL8tbw==");
  10. headers.setSecWebSocketProtocol("v10.stomp");
  11. WebSocketHandler handler = new SubProtocolCapableHandler("v12.stomp", "v11.stomp");
  12. Map<String, Object> attributes = Collections.<String, Object>emptyMap();
  13. this.handshakeHandler.doHandshake(this.request, this.response, handler, attributes);
  14. verify(this.upgradeStrategy).upgrade(this.request, this.response, null,
  15. Collections.emptyList(), null, handler, attributes);
  16. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void doHandshake() throws Exception {
  3. WebSocketHttpHeaders headers = new WebSocketHttpHeaders();
  4. headers.setSecWebSocketProtocol(Arrays.asList("echo"));
  5. this.wsSession = this.client.doHandshake(new TextWebSocketHandler(), headers, new URI(this.wsUrl)).get();
  6. assertEquals(this.wsUrl, this.wsSession.getUri().toString());
  7. assertEquals("echo", this.wsSession.getAcceptedProtocol());
  8. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Returns {@code WebSocketHttpHeaders} object that can only be read, not written to.
  3. */
  4. public static WebSocketHttpHeaders readOnlyWebSocketHttpHeaders(WebSocketHttpHeaders headers) {
  5. return new WebSocketHttpHeaders(headers, true);
  6. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Override
  2. public final ListenableFuture<WebSocketSession> doHandshake(WebSocketHandler webSocketHandler,
  3. @Nullable WebSocketHttpHeaders headers, URI uri) {
  4. Assert.notNull(webSocketHandler, "WebSocketHandler must not be null");
  5. assertUri(uri);
  6. if (logger.isDebugEnabled()) {
  7. logger.debug("Connecting to " + uri);
  8. }
  9. HttpHeaders headersToUse = new HttpHeaders();
  10. if (headers != null) {
  11. headers.forEach((header, values) -> {
  12. if (values != null && !specialHeaders.contains(header.toLowerCase())) {
  13. headersToUse.put(header, values);
  14. }
  15. });
  16. }
  17. List<String> subProtocols =
  18. (headers != null ? headers.getSecWebSocketProtocol() : Collections.emptyList());
  19. List<WebSocketExtension> extensions =
  20. (headers != null ? headers.getSecWebSocketExtensions() : Collections.emptyList());
  21. return doHandshakeInternal(webSocketHandler, headersToUse, uri, subProtocols, extensions,
  22. Collections.emptyMap());
  23. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void connectAndUseSubsetOfHandshakeHeadersForHttpRequests() throws Exception {
  3. ArgumentCaptor<HttpHeaders> headersCaptor = setupInfoRequest(false);
  4. this.xhrTransport.setStreamingDisabled(true);
  5. WebSocketHttpHeaders headers = new WebSocketHttpHeaders();
  6. headers.set("foo", "bar");
  7. headers.set("auth", "123");
  8. this.sockJsClient.setHttpHeaderNames("auth");
  9. this.sockJsClient.doHandshake(handler, headers, new URI(URL)).addCallback(this.connectCallback);
  10. assertEquals(1, headersCaptor.getValue().size());
  11. assertEquals("123", headersCaptor.getValue().getFirst("auth"));
  12. assertEquals(1, this.xhrTransport.getRequest().getHttpRequestHeaders().size());
  13. assertEquals("123", this.xhrTransport.getRequest().getHttpRequestHeaders().getFirst("auth"));
  14. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void supportedExtensions() {
  3. WebSocketExtension extension1 = new WebSocketExtension("ext1");
  4. WebSocketExtension extension2 = new WebSocketExtension("ext2");
  5. given(this.upgradeStrategy.getSupportedVersions()).willReturn(new String[] {"13"});
  6. given(this.upgradeStrategy.getSupportedExtensions(this.request)).willReturn(Collections.singletonList(extension1));
  7. this.servletRequest.setMethod("GET");
  8. WebSocketHttpHeaders headers = new WebSocketHttpHeaders(this.request.getHeaders());
  9. headers.setUpgrade("WebSocket");
  10. headers.setConnection("Upgrade");
  11. headers.setSecWebSocketVersion("13");
  12. headers.setSecWebSocketKey("82/ZS2YHjEnUN97HLL8tbw==");
  13. headers.setSecWebSocketExtensions(Arrays.asList(extension1, extension2));
  14. WebSocketHandler handler = new TextWebSocketHandler();
  15. Map<String, Object> attributes = Collections.<String, Object>emptyMap();
  16. this.handshakeHandler.doHandshake(this.request, this.response, handler, attributes);
  17. verify(this.upgradeStrategy).upgrade(this.request, this.response, null,
  18. Collections.singletonList(extension1), null, handler, attributes);
  19. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Sets the (new) value of the {@code Sec-WebSocket-Protocol} header.
  3. * @param secWebSocketProtocol the value of the header
  4. */
  5. public void setSecWebSocketProtocol(String secWebSocketProtocol) {
  6. set(SEC_WEBSOCKET_PROTOCOL, secWebSocketProtocol);
  7. }

代码示例来源:origin: spring-projects/spring-integration

  1. @Bean
  2. public StompSessionManager stompSessionManager(WebSocketStompClient stompClient) {
  3. WebSocketStompSessionManager webSocketStompSessionManager =
  4. new WebSocketStompSessionManager(stompClient, server().getWsBaseUrl() + "/ws");
  5. webSocketStompSessionManager.setAutoReceipt(true);
  6. webSocketStompSessionManager.setRecoveryInterval(1000);
  7. WebSocketHttpHeaders handshakeHeaders = new WebSocketHttpHeaders();
  8. handshakeHeaders.setOrigin("http://foo.com");
  9. webSocketStompSessionManager.setHandshakeHeaders(handshakeHeaders);
  10. StompHeaders stompHeaders = new StompHeaders();
  11. stompHeaders.setHeartbeat(new long[] { 10000, 10000 });
  12. webSocketStompSessionManager.setConnectHeaders(stompHeaders);
  13. return webSocketStompSessionManager;
  14. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void echoXhrWithHeaders() throws Exception {
  3. AbstractXhrTransport xhrTransport = createXhrTransport();
  4. xhrTransport.setXhrStreamingDisabled(true);
  5. WebSocketHttpHeaders headers = new WebSocketHttpHeaders();
  6. headers.add("auth", "123");
  7. testEcho(10, xhrTransport, headers);
  8. for (Map.Entry<String, HttpHeaders> entry : this.testFilter.requests.entrySet()) {
  9. HttpHeaders httpHeaders = entry.getValue();
  10. assertEquals("No auth header for: " + entry.getKey(), "123", httpHeaders.getFirst("auth"));
  11. }
  12. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void handshakeHeaders() throws Exception {
  3. URI uri = new URI("ws://localhost/abc");
  4. List<String> protocols = Collections.singletonList("abc");
  5. this.headers.setSecWebSocketProtocol(protocols);
  6. this.headers.add("foo", "bar");
  7. WebSocketSession session = this.wsClient.doHandshake(this.wsHandler, this.headers, uri).get();
  8. assertEquals(1, session.getHandshakeHeaders().size());
  9. assertEquals("bar", session.getHandshakeHeaders().getFirst("foo"));
  10. }

代码示例来源:origin: spring-projects/spring-integration

  1. WebSocketHttpHeaders headers = TestUtils.getPropertyValue(this.clientWebSocketContainer, "headers",
  2. WebSocketHttpHeaders.class);
  3. assertEquals("FOO", headers.getOrigin());
  4. assertEquals(Arrays.asList("BAR", "baz"), headers.get("FOO"));
  5. "connectionManager.autoStartup", Boolean.class));
  6. assertTrue(TestUtils.getPropertyValue(this.simpleClientWebSocketContainer, "headers",
  7. WebSocketHttpHeaders.class).isEmpty());

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void parseWebSocketExtensions() {
  3. List<String> extensions = new ArrayList<>();
  4. extensions.add("x-foo-extension, x-bar-extension");
  5. extensions.add("x-test-extension");
  6. this.headers.put(WebSocketHttpHeaders.SEC_WEBSOCKET_EXTENSIONS, extensions);
  7. List<WebSocketExtension> parsedExtensions = this.headers.getSecWebSocketExtensions();
  8. assertThat(parsedExtensions, Matchers.hasSize(3));
  9. }

代码示例来源:origin: spring-projects/spring-integration

  1. public void setHeaders(HttpHeaders headers) {
  2. this.headers.putAll(headers);
  3. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Return the configured origin.
  3. */
  4. @Nullable
  5. public String getOrigin() {
  6. return this.headers.getOrigin();
  7. }

相关文章