Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QuicOperations should extend ChannelOperations<UdpInbound, UdpOutbound> #1858

Closed
linux-china opened this issue Oct 16, 2021 · 3 comments
Closed
Assignees

Comments

@linux-china
Copy link

Now the QuicOperations is different with UdpOperations, HttpOperations, and not extends ChannelOperations<UdpInbound, UdpOutbound> .

To implement the QUIC transport for RSocket with following code:

return quicServer
                .doOnConnection(
                        c -> {
                            c.addHandlerLast(new RSocketLengthCodec(maxFrameLength));
                            acceptor.apply(new QuicDuplexConnection(c))
                                    .then(Mono.<Void>never())
                                    .subscribe(c.disposeSubscriber());
                        })
                .bind()
                .map(CloseableChannel::new);

receive() in QuicDuplexConnection as following:

    public Flux<ByteBuf> receive() {
        return connection.inbound().receive().map(FrameLengthCodec::frame);
    }

QuicOperations.inbound() can not receive any ByteBuf because it use reactor.netty.Connection default method as following:

      default NettyInbound inbound() {
		return ReactorNetty.unavailableInbound(this);
	}
@linux-china linux-china added status/need-triage A new issue that still need to be evaluated as a whole type/enhancement A general enhancement labels Oct 16, 2021
@violetagg
Copy link
Member

@linux-china Do you need to add this on connection level or stream level?
If you need to add this on stream level see this test https://github.com/reactor/reactor-netty/blob/main/reactor-netty-incubator-quic/src/test/java/reactor/netty/incubator/quic/QuicClientSmokeTests.java

@linux-china
Copy link
Author

linux-china commented Oct 16, 2021

@violetagg Got, and I will take a look. rsocket-transport-quic is here https://github.com/linux-china/rsocket-transport-quic/blob/master/src/main/java/io/rsocket/transport/quic/server/QuicServerTransport.java Still not lucky to make it work on server side. Maybe I did some stupid things :).

client side:

Snip20211016_31

server side:

Snip20211016_32

@violetagg violetagg removed the status/need-triage A new issue that still need to be evaluated as a whole label Oct 18, 2021
@violetagg violetagg self-assigned this Oct 18, 2021
@violetagg
Copy link
Member

@linux-china Let's continue the discussion about integration in RSocket here rsocket/rsocket-java#1019
If something is needed on Reactor Netty side we can address it.

@violetagg violetagg removed the type/enhancement A general enhancement label Nov 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants