Java源码示例:org.springframework.web.socket.handler.WebSocketHandlerDecorator

示例1
@Test
public void openConnection() throws Exception {
	List<String> subprotocols = Arrays.asList("abc");

	TestLifecycleWebSocketClient client = new TestLifecycleWebSocketClient(false);
	WebSocketHandler handler = new TextWebSocketHandler();

	WebSocketConnectionManager manager = new WebSocketConnectionManager(client, handler , "/path/{id}", "123");
	manager.setSubProtocols(subprotocols);
	manager.openConnection();

	WebSocketHttpHeaders expectedHeaders = new WebSocketHttpHeaders();
	expectedHeaders.setSecWebSocketProtocol(subprotocols);

	assertEquals(expectedHeaders, client.headers);
	assertEquals(new URI("/path/123"), client.uri);

	WebSocketHandlerDecorator loggingHandler = (WebSocketHandlerDecorator) client.webSocketHandler;
	assertEquals(LoggingWebSocketHandlerDecorator.class, loggingHandler.getClass());

	assertSame(handler, loggingHandler.getDelegate());
}
 
示例2
@Test
public void openConnection() throws Exception {
	List<String> subprotocols = Arrays.asList("abc");

	TestLifecycleWebSocketClient client = new TestLifecycleWebSocketClient(false);
	WebSocketHandler handler = new TextWebSocketHandler();

	WebSocketConnectionManager manager = new WebSocketConnectionManager(client, handler , "/path/{id}", "123");
	manager.setSubProtocols(subprotocols);
	manager.openConnection();

	WebSocketHttpHeaders expectedHeaders = new WebSocketHttpHeaders();
	expectedHeaders.setSecWebSocketProtocol(subprotocols);

	assertEquals(expectedHeaders, client.headers);
	assertEquals(new URI("/path/123"), client.uri);

	WebSocketHandlerDecorator loggingHandler = (WebSocketHandlerDecorator) client.webSocketHandler;
	assertEquals(LoggingWebSocketHandlerDecorator.class, loggingHandler.getClass());

	assertSame(handler, loggingHandler.getDelegate());
}
 
示例3
@Test
public void openConnection() throws Exception {
	List<String> subprotocols = Arrays.asList("abc");

	TestLifecycleWebSocketClient client = new TestLifecycleWebSocketClient(false);
	WebSocketHandler handler = new TextWebSocketHandler();

	WebSocketConnectionManager manager = new WebSocketConnectionManager(client, handler , "/path/{id}", "123");
	manager.setSubProtocols(subprotocols);
	manager.openConnection();

	WebSocketHttpHeaders expectedHeaders = new WebSocketHttpHeaders();
	expectedHeaders.setSecWebSocketProtocol(subprotocols);

	assertEquals(expectedHeaders, client.headers);
	assertEquals(new URI("/path/123"), client.uri);

	WebSocketHandlerDecorator loggingHandler = (WebSocketHandlerDecorator) client.webSocketHandler;
	assertEquals(LoggingWebSocketHandlerDecorator.class, loggingHandler.getClass());

	assertSame(handler, loggingHandler.getDelegate());
}
 
示例4
/**
 * Determine the sub-protocols supported by the given WebSocketHandler by
 * checking whether it is an instance of {@link SubProtocolCapable}.
 * @param handler the handler to check
 * @return a list of supported protocols, or an empty list if none available
 */
protected final List<String> determineHandlerSupportedProtocols(WebSocketHandler handler) {
	WebSocketHandler handlerToCheck = WebSocketHandlerDecorator.unwrap(handler);
	List<String> subProtocols = null;
	if (handlerToCheck instanceof SubProtocolCapable) {
		subProtocols = ((SubProtocolCapable) handlerToCheck).getSubProtocols();
	}
	return (subProtocols != null ? subProtocols : Collections.emptyList());
}
 
示例5
public SockJsWebSocketHandler(SockJsServiceConfig serviceConfig, WebSocketHandler webSocketHandler,
		WebSocketServerSockJsSession sockJsSession) {

	Assert.notNull(serviceConfig, "serviceConfig must not be null");
	Assert.notNull(webSocketHandler, "webSocketHandler must not be null");
	Assert.notNull(sockJsSession, "session must not be null");

	this.sockJsServiceConfig = serviceConfig;
	this.sockJsSession = sockJsSession;

	webSocketHandler = WebSocketHandlerDecorator.unwrap(webSocketHandler);
	this.subProtocols = ((webSocketHandler instanceof SubProtocolCapable) ?
			new ArrayList<>(((SubProtocolCapable) webSocketHandler).getSubProtocols()) : Collections.emptyList());
}
 
示例6
private static SubProtocolWebSocketHandler unwrapSubProtocolWebSocketHandler(WebSocketHandler handler) {
	WebSocketHandler actual = WebSocketHandlerDecorator.unwrap(handler);
	if (!(actual instanceof SubProtocolWebSocketHandler)) {
		throw new IllegalArgumentException("No SubProtocolWebSocketHandler in " + handler);
	}
	return (SubProtocolWebSocketHandler) actual;
}
 
示例7
@Override
protected void configureWebSocketTransport(WebSocketTransportRegistration registry) {
	registry.addDecoratorFactory(new WebSocketHandlerDecoratorFactory() {
		@Override
		public WebSocketHandlerDecorator decorate(WebSocketHandler handler) {
			return new WebSocketHandlerDecorator(handler) {
				@Override
				public void afterConnectionEstablished(WebSocketSession session) throws Exception {
					session.getAttributes().put("decorated", true);
					super.afterConnectionEstablished(session);
				}
			};
		}
	});
}
 
示例8
/**
 * Determine the sub-protocols supported by the given WebSocketHandler by
 * checking whether it is an instance of {@link SubProtocolCapable}.
 * @param handler the handler to check
 * @return a list of supported protocols, or an empty list if none available
 */
protected final List<String> determineHandlerSupportedProtocols(WebSocketHandler handler) {
	WebSocketHandler handlerToCheck = WebSocketHandlerDecorator.unwrap(handler);
	List<String> subProtocols = null;
	if (handlerToCheck instanceof SubProtocolCapable) {
		subProtocols = ((SubProtocolCapable) handlerToCheck).getSubProtocols();
	}
	return (subProtocols != null ? subProtocols : Collections.emptyList());
}
 
示例9
public SockJsWebSocketHandler(SockJsServiceConfig serviceConfig, WebSocketHandler webSocketHandler,
		WebSocketServerSockJsSession sockJsSession) {

	Assert.notNull(serviceConfig, "serviceConfig must not be null");
	Assert.notNull(webSocketHandler, "webSocketHandler must not be null");
	Assert.notNull(sockJsSession, "session must not be null");

	this.sockJsServiceConfig = serviceConfig;
	this.sockJsSession = sockJsSession;

	webSocketHandler = WebSocketHandlerDecorator.unwrap(webSocketHandler);
	this.subProtocols = ((webSocketHandler instanceof SubProtocolCapable) ?
			new ArrayList<>(((SubProtocolCapable) webSocketHandler).getSubProtocols()) : Collections.emptyList());
}
 
示例10
private static SubProtocolWebSocketHandler unwrapSubProtocolWebSocketHandler(WebSocketHandler handler) {
	WebSocketHandler actual = WebSocketHandlerDecorator.unwrap(handler);
	if (!(actual instanceof SubProtocolWebSocketHandler)) {
		throw new IllegalArgumentException("No SubProtocolWebSocketHandler in " + handler);
	}
	return (SubProtocolWebSocketHandler) actual;
}
 
示例11
@Override
protected void configureWebSocketTransport(WebSocketTransportRegistration registry) {
	registry.addDecoratorFactory(new WebSocketHandlerDecoratorFactory() {
		@Override
		public WebSocketHandlerDecorator decorate(WebSocketHandler handler) {
			return new WebSocketHandlerDecorator(handler) {
				@Override
				public void afterConnectionEstablished(WebSocketSession session) throws Exception {
					session.getAttributes().put("decorated", true);
					super.afterConnectionEstablished(session);
				}
			};
		}
	});
}
 
示例12
/**
 * Determine the sub-protocols supported by the given WebSocketHandler by
 * checking whether it is an instance of {@link SubProtocolCapable}.
 * @param handler the handler to check
 * @return a list of supported protocols, or an empty list if none available
 */
protected final List<String> determineHandlerSupportedProtocols(WebSocketHandler handler) {
	WebSocketHandler handlerToCheck = WebSocketHandlerDecorator.unwrap(handler);
	List<String> subProtocols = null;
	if (handlerToCheck instanceof SubProtocolCapable) {
		subProtocols = ((SubProtocolCapable) handlerToCheck).getSubProtocols();
	}
	return (subProtocols != null ? subProtocols : Collections.<String>emptyList());
}
 
示例13
public SockJsWebSocketHandler(SockJsServiceConfig serviceConfig, WebSocketHandler webSocketHandler,
		WebSocketServerSockJsSession sockJsSession) {

	Assert.notNull(serviceConfig, "serviceConfig must not be null");
	Assert.notNull(webSocketHandler, "webSocketHandler must not be null");
	Assert.notNull(sockJsSession, "session must not be null");

	this.sockJsServiceConfig = serviceConfig;
	this.sockJsSession = sockJsSession;

	webSocketHandler = WebSocketHandlerDecorator.unwrap(webSocketHandler);
	this.subProtocols = ((webSocketHandler instanceof SubProtocolCapable) ?
			new ArrayList<String>(((SubProtocolCapable) webSocketHandler).getSubProtocols()) : null);
}
 
示例14
@Override
protected void configureWebSocketTransport(WebSocketTransportRegistration registry) {
	registry.addDecoratorFactory(new WebSocketHandlerDecoratorFactory() {
		@Override
		public WebSocketHandlerDecorator decorate(WebSocketHandler handler) {
			return new WebSocketHandlerDecorator(handler) {
				@Override
				public void afterConnectionEstablished(WebSocketSession session) throws Exception {
					session.getAttributes().put("decorated", true);
					super.afterConnectionEstablished(session);
				}
			};
		}
	});
}
 
示例15
private static void unwrapAndCheckDecoratedHandlerType(WebSocketHandler handler, Class<?> handlerClass) {
	if (handler instanceof WebSocketHandlerDecorator) {
		handler = ((WebSocketHandlerDecorator) handler).getLastHandler();
	}
	assertTrue(handlerClass.isInstance(handler));
}
 
示例16
private WebSocketHandler unwrapWebSocketHandler(WebSocketHandler handler) {
	return (handler instanceof WebSocketHandlerDecorator) ?
			((WebSocketHandlerDecorator) handler).getLastHandler() : handler;
}
 
示例17
private static void unwrapAndCheckDecoratedHandlerType(WebSocketHandler handler, Class<?> handlerClass) {
	if (handler instanceof WebSocketHandlerDecorator) {
		handler = ((WebSocketHandlerDecorator) handler).getLastHandler();
	}
	assertTrue(handlerClass.isInstance(handler));
}
 
示例18
private WebSocketHandler unwrapWebSocketHandler(WebSocketHandler handler) {
	return (handler instanceof WebSocketHandlerDecorator) ?
			((WebSocketHandlerDecorator) handler).getLastHandler() : handler;
}
 
示例19
private static SubProtocolWebSocketHandler unwrapSubProtocolWebSocketHandler(WebSocketHandler handler) {
	WebSocketHandler actual = WebSocketHandlerDecorator.unwrap(handler);
	Assert.isInstanceOf(SubProtocolWebSocketHandler.class, actual, "No SubProtocolWebSocketHandler in " + handler);
	return (SubProtocolWebSocketHandler) actual;
}
 
示例20
private static void unwrapAndCheckDecoratedHandlerType(WebSocketHandler handler, Class<?> handlerClass) {
	if (handler instanceof WebSocketHandlerDecorator) {
		handler = ((WebSocketHandlerDecorator) handler).getLastHandler();
	}
	assertTrue(handlerClass.isInstance(handler));
}
 
示例21
private WebSocketHandler unwrapWebSocketHandler(WebSocketHandler handler) {
	return (handler instanceof WebSocketHandlerDecorator) ?
			((WebSocketHandlerDecorator) handler).getLastHandler() : handler;
}