This commit is contained in:
Rossen Stoyanchev 2017-06-26 15:51:08 -04:00
parent 9cb74b1399
commit cea1a0f1ca
4 changed files with 17 additions and 11 deletions

View File

@ -36,7 +36,7 @@ import org.springframework.web.reactive.socket.WebSocketMessage;
import org.springframework.web.reactive.socket.WebSocketSession; import org.springframework.web.reactive.socket.WebSocketSession;
/** /**
* Spring {@link WebSocketSession} adapter for JSR 356 * Spring {@link WebSocketSession} adapter for a standard Java (JSR 356)
* {@link javax.websocket.Session}. * {@link javax.websocket.Session}.
* *
* @author Violeta Georgieva * @author Violeta Georgieva

View File

@ -34,16 +34,18 @@ import reactor.core.publisher.MonoProcessor;
*/ */
public class TomcatWebSocketSession extends StandardWebSocketSession { public class TomcatWebSocketSession extends StandardWebSocketSession {
public TomcatWebSocketSession(Session session, HandshakeInfo info,
DataBufferFactory factory) { public TomcatWebSocketSession(Session session, HandshakeInfo info, DataBufferFactory factory) {
super(session, info, factory); super(session, info, factory);
} }
public TomcatWebSocketSession(Session session, HandshakeInfo info, public TomcatWebSocketSession(Session session, HandshakeInfo info, DataBufferFactory factory,
DataBufferFactory factory, MonoProcessor<Void> completionMono) { MonoProcessor<Void> completionMono) {
super(session, info, factory, completionMono); super(session, info, factory, completionMono);
} }
@Override @Override
protected boolean canSuspendReceiving() { protected boolean canSuspendReceiving() {
return true; return true;

View File

@ -114,6 +114,12 @@ public class StandardWebSocketClient extends WebSocketClientSupport implements W
}); });
} }
protected StandardWebSocketSession createWebSocketSession(Session session, HandshakeInfo info,
MonoProcessor<Void> completion) {
return new StandardWebSocketSession(session, info, this.bufferFactory, completion);
}
private ClientEndpointConfig createEndpointConfig(Configurator configurator, List<String> subProtocols) { private ClientEndpointConfig createEndpointConfig(Configurator configurator, List<String> subProtocols) {
return ClientEndpointConfig.Builder.create() return ClientEndpointConfig.Builder.create()
.configurator(configurator) .configurator(configurator)
@ -121,15 +127,11 @@ public class StandardWebSocketClient extends WebSocketClientSupport implements W
.build(); .build();
} }
protected StandardWebSocketSession createWebSocketSession(Session session, HandshakeInfo info,
MonoProcessor<Void> completion) {
return new StandardWebSocketSession(session, info, this.bufferFactory, completion);
}
protected DataBufferFactory bufferFactory() { protected DataBufferFactory bufferFactory() {
return this.bufferFactory; return this.bufferFactory;
} }
private static final class DefaultConfigurator extends Configurator { private static final class DefaultConfigurator extends Configurator {
private final HttpHeaders requestHeaders; private final HttpHeaders requestHeaders;

View File

@ -32,10 +32,12 @@ import reactor.core.publisher.MonoProcessor;
*/ */
public class TomcatWebSocketClient extends StandardWebSocketClient { public class TomcatWebSocketClient extends StandardWebSocketClient {
@Override @Override
protected StandardWebSocketSession createWebSocketSession(Session session, protected StandardWebSocketSession createWebSocketSession(Session session,
HandshakeInfo info, MonoProcessor<Void> completion) { HandshakeInfo info, MonoProcessor<Void> completion) {
return new TomcatWebSocketSession(session, info, bufferFactory(), completion);
return new TomcatWebSocketSession(session, info, bufferFactory(), completion);
} }
} }