apache / dubbo-go-hessian2

caucho hessian2 implementation in Go for [apache/dubbo-go](https://github.com/apache/dubbo-go) which is compatible with [dubbo-hessian-lite](https://github.com/apache/dubbo-hessian-lite)
Apache License 2.0
210 stars 114 forks source link

Decode from tcp stream #372

Open evanzhang87 opened 10 months ago

evanzhang87 commented 10 months ago

What would you like to be added: I hope HessianCodec can read message from stream, which means body can be from different packet. Why is this needed:

background

We use gopacket to parse packet from The 4th layer, and then build a 7th layer request(HTTP) to do some interesting things. We want to do the same thing for Dubbo. We already realized a way to parse Dubbo header, but now we want to parse body.

what we want

Like HTTP, a dubbo request/response can also be divided into different packets, but HessianCodec can just parse req/res from a complete packet .

    if h.reader.Buffered() < h.bodyLen {
        return ErrBodyNotEnough
    }

However, reader can get remaining body from the next packet. If possible, I'd like to contribute code for this.

tiltwind commented 10 months ago

@evanzhang87 it's a great enhancement, contributions are welcome ~