类org.springframework.web.socket.sockjs.transport.session.WebSocketServerSockJsSession源码实例Demo

下面列出了怎么用org.springframework.web.socket.sockjs.transport.session.WebSocketServerSockJsSession的API类实例代码及写法,或者点击链接到github查看源代码。

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());
}
 
@Override
public void handleRequest(ServerHttpRequest request, ServerHttpResponse response,
		WebSocketHandler wsHandler, SockJsSession wsSession) throws SockJsException {

	WebSocketServerSockJsSession sockJsSession = (WebSocketServerSockJsSession) wsSession;
	try {
		wsHandler = new SockJsWebSocketHandler(getServiceConfig(), wsHandler, sockJsSession);
		this.handshakeHandler.doHandshake(request, response, wsHandler, sockJsSession.getAttributes());
	}
	catch (Throwable ex) {
		sockJsSession.tryCloseWithSockJsTransportError(ex, CloseStatus.SERVER_ERROR);
		throw new SockJsTransportFailureException("WebSocket handshake failure", wsSession.getId(), ex);
	}
}
 
@Test
public void getSubProtocols() throws Exception {
	SubscribableChannel channel = mock(SubscribableChannel.class);
	SubProtocolWebSocketHandler handler = new SubProtocolWebSocketHandler(channel, channel);
	StompSubProtocolHandler stompHandler = new StompSubProtocolHandler();
	handler.addProtocolHandler(stompHandler);

	TaskScheduler scheduler = mock(TaskScheduler.class);
	DefaultSockJsService service = new DefaultSockJsService(scheduler);
	WebSocketServerSockJsSession session = new WebSocketServerSockJsSession("1", service, handler, null);
	SockJsWebSocketHandler sockJsHandler = new SockJsWebSocketHandler(service, handler, session);

	assertEquals(stompHandler.getSupportedProtocols(), sockJsHandler.getSubProtocols());
}
 
@Test
public void getSubProtocolsNone() throws Exception {
	WebSocketHandler handler = new TextWebSocketHandler();
	TaskScheduler scheduler = mock(TaskScheduler.class);
	DefaultSockJsService service = new DefaultSockJsService(scheduler);
	WebSocketServerSockJsSession session = new WebSocketServerSockJsSession("1", service, handler, null);
	SockJsWebSocketHandler sockJsHandler = new SockJsWebSocketHandler(service, handler, session);

	assertEquals(Collections.emptyList(), sockJsHandler.getSubProtocols());
}
 
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());
}
 
@Override
public void handleRequest(ServerHttpRequest request, ServerHttpResponse response,
		WebSocketHandler wsHandler, SockJsSession wsSession) throws SockJsException {

	WebSocketServerSockJsSession sockJsSession = (WebSocketServerSockJsSession) wsSession;
	try {
		wsHandler = new SockJsWebSocketHandler(getServiceConfig(), wsHandler, sockJsSession);
		this.handshakeHandler.doHandshake(request, response, wsHandler, sockJsSession.getAttributes());
	}
	catch (Throwable ex) {
		sockJsSession.tryCloseWithSockJsTransportError(ex, CloseStatus.SERVER_ERROR);
		throw new SockJsTransportFailureException("WebSocket handshake failure", wsSession.getId(), ex);
	}
}
 
@Test
public void getSubProtocols() throws Exception {
	SubscribableChannel channel = mock(SubscribableChannel.class);
	SubProtocolWebSocketHandler handler = new SubProtocolWebSocketHandler(channel, channel);
	StompSubProtocolHandler stompHandler = new StompSubProtocolHandler();
	handler.addProtocolHandler(stompHandler);

	TaskScheduler scheduler = mock(TaskScheduler.class);
	DefaultSockJsService service = new DefaultSockJsService(scheduler);
	WebSocketServerSockJsSession session = new WebSocketServerSockJsSession("1", service, handler, null);
	SockJsWebSocketHandler sockJsHandler = new SockJsWebSocketHandler(service, handler, session);

	assertEquals(stompHandler.getSupportedProtocols(), sockJsHandler.getSubProtocols());
}
 
@Test
public void getSubProtocolsNone() throws Exception {
	WebSocketHandler handler = new TextWebSocketHandler();
	TaskScheduler scheduler = mock(TaskScheduler.class);
	DefaultSockJsService service = new DefaultSockJsService(scheduler);
	WebSocketServerSockJsSession session = new WebSocketServerSockJsSession("1", service, handler, null);
	SockJsWebSocketHandler sockJsHandler = new SockJsWebSocketHandler(service, handler, session);

	assertEquals(Collections.emptyList(), sockJsHandler.getSubProtocols());
}
 
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);
}
 
@Override
public void handleRequest(ServerHttpRequest request, ServerHttpResponse response,
		WebSocketHandler wsHandler, SockJsSession wsSession) throws SockJsException {

	WebSocketServerSockJsSession sockJsSession = (WebSocketServerSockJsSession) wsSession;
	try {
		wsHandler = new SockJsWebSocketHandler(getServiceConfig(), wsHandler, sockJsSession);
		this.handshakeHandler.doHandshake(request, response, wsHandler, sockJsSession.getAttributes());
	}
	catch (Throwable ex) {
		sockJsSession.tryCloseWithSockJsTransportError(ex, CloseStatus.SERVER_ERROR);
		throw new SockJsTransportFailureException("WebSocket handshake failure", wsSession.getId(), ex);
	}
}
 
@Test
public void getSubProtocols() throws Exception {
	SubscribableChannel channel = mock(SubscribableChannel.class);
	SubProtocolWebSocketHandler handler = new SubProtocolWebSocketHandler(channel, channel);
	StompSubProtocolHandler stompHandler = new StompSubProtocolHandler();
	handler.addProtocolHandler(stompHandler);

	TaskScheduler scheduler = mock(TaskScheduler.class);
	DefaultSockJsService service = new DefaultSockJsService(scheduler);
	WebSocketServerSockJsSession session = new WebSocketServerSockJsSession("1", service, handler, null);
	SockJsWebSocketHandler sockJsHandler = new SockJsWebSocketHandler(service, handler, session);

	assertEquals(stompHandler.getSupportedProtocols(), sockJsHandler.getSubProtocols());
}
 
@Test
public void getSubProtocolsNone() throws Exception {
	WebSocketHandler handler = new TextWebSocketHandler();
	TaskScheduler scheduler = mock(TaskScheduler.class);
	DefaultSockJsService service = new DefaultSockJsService(scheduler);
	WebSocketServerSockJsSession session = new WebSocketServerSockJsSession("1", service, handler, null);
	SockJsWebSocketHandler sockJsHandler = new SockJsWebSocketHandler(service, handler, session);

	assertNull(sockJsHandler.getSubProtocols());
}
 
@Override
public boolean checkSessionType(SockJsSession session) {
	return session instanceof WebSocketServerSockJsSession;
}
 
@Override
public AbstractSockJsSession createSession(String id, WebSocketHandler handler, Map<String, Object> attrs) {
	return new WebSocketServerSockJsSession(id, getServiceConfig(), handler, attrs);
}
 
@Override
public boolean checkSessionType(SockJsSession session) {
	return session instanceof WebSocketServerSockJsSession;
}
 
@Override
public AbstractSockJsSession createSession(String id, WebSocketHandler handler, Map<String, Object> attrs) {
	return new WebSocketServerSockJsSession(id, getServiceConfig(), handler, attrs);
}
 
@Override
public AbstractSockJsSession createSession(String id, WebSocketHandler handler, Map<String, Object> attrs) {
	return new WebSocketServerSockJsSession(id, getServiceConfig(), handler, attrs);
}
 
 类方法
 同包方法