@Override public Mono<RSocket> accept(ConnectionSetupPayload setup, RSocket rsocket) { LOGGER.info("Accepted rsocket websocket: {}, connectionSetup: {}", rsocket, setup); rsocket .onClose() .doOnTerminate(() -> LOGGER.info("Client disconnected: {}", rsocket)) .subscribe(null, th -> LOGGER.error("Exception on closing rsocket: {}", th)); // Prepare message codec together with headers from metainfo HeadersCodec headersCodec = HeadersCodec.getInstance(setup.metadataMimeType()); ServiceMessageCodec messageCodec = new ServiceMessageCodec(headersCodec); return Mono.just(new GatewayRSocket(serviceCall, metrics, messageCodec)); }
@Override public ServerTransport serverTransport(ServiceTransport.Resources resources) { return new RSocketServerTransport( new ServiceMessageCodec(HeadersCodec.getInstance(DEFAULT_HEADERS_FORMAT)), ((Resources) resources).workerPool); }
@Override public ServerTransport serverTransport(ServiceTransport.Resources resources) { return new RSocketServerTransport( new ServiceMessageCodec(HeadersCodec.getInstance(DEFAULT_HEADERS_FORMAT)), ((Resources) resources).workerPool); }
@Override public ClientTransport clientTransport(ServiceTransport.Resources resources) { return new RSocketClientTransport( new ServiceMessageCodec(HeadersCodec.getInstance(DEFAULT_HEADERS_FORMAT)), DelegatedLoopResources.newClientLoopResources(((Resources) resources).workerPool)); }
@Override public ClientTransport clientTransport(ServiceTransport.Resources resources) { return new RSocketClientTransport( new ServiceMessageCodec(HeadersCodec.getInstance(DEFAULT_HEADERS_FORMAT)), DelegatedLoopResources.newClientLoopResources(((Resources) resources).workerPool)); }
/** * Client on rsocket client transport. * * @param clientSettings client settings * @return client */ public static Client onRSocket(ClientSettings clientSettings) { RSocketClientCodec clientCodec = new RSocketClientCodec( HeadersCodec.getInstance(clientSettings.contentType()), DataCodec.getInstance(clientSettings.contentType())); RSocketClientTransport clientTransport = new RSocketClientTransport(clientSettings, clientCodec, clientSettings.loopResources()); return new Client(clientTransport, clientCodec, clientSettings.errorMapper()); }