apache / dubbo

The java implementation of Apache Dubbo. An RPC and microservice framework.
https://dubbo.apache.org/
Apache License 2.0
40.41k stars 26.42k forks source link

[Feature] Websocket Support For Triple Protocol #14298

Open oxsean opened 3 months ago

oxsean commented 3 months ago

Background

The Triple protocol is based on HTTP/2 and implements bidirectional communication using streams. WebSocket's long connection and event features are very suitable for RPC scenarios, so we consider using WebSocket as the communication layer for Triple, giving users more options.

In terms of specific implementation, we do not want to change the existing Triple protocol but rather adapt the Triple frame model to WebSocket frames. This can be done by referencing the approach used in HTTP/3.

Next Step

high-level design

oxsean commented 3 months ago

If you are interested in this, please leave a message to participate. However, implementing a new communication layer is quite challenging, so it is best if you have extensive experience with Netty

finefuture commented 3 months ago

I'm interested. Please assign it to me.

finefuture commented 3 months ago

Adapt the websocket frames model to the http2 frames, reuse the request processing flow of http2. websocket on triple—Netty

Extend the Endpoint and MessageHandler of javax.websocket, adapt the websocket on netty request processing model. websocket on triple—javax websocket