soheilhy / cmux

Connection multiplexer for GoLang: serve different services on the same port!
Apache License 2.0
2.53k stars 197 forks source link

http2 matcher not working with net/http #95

Open lukeo3o1 opened 1 year ago

lukeo3o1 commented 1 year ago

Caused by https://github.com/golang/go/issues/55076

https://github.com/golang/go/blob/9861e8b2fd83dec24a6ced44998dca52abd6ccff/src/net/http/server.go#L1854

AttilaTheFun commented 1 year ago

Hi @lukeo3o1 ! I have a Go server that currently uses gRPC internally on a different port than the publicly accessible HTTP port. I’m interested in exposing some gRPC services publicly through the same port and I’m considering using cmux for this, I don’t want to sacrifice HTTP/2 support.

I see you have a branch for this but it hasn’t been updated in a few months. What is the current status of this feature? If it’s workable / close to shipping I’d like to try it out. If not I’ll probably have to set up a separate subdomain for the gRPC APIs.

lukeo3o1 commented 1 year ago

Hi @AttilaTheFun

I am using this feature in production and it has been workable for me. However, I have occasionally encountered PROTOCOL_ERROR errors. Although these occurrences are rare, I recommend testing the feature thoroughly and using it at your own discretion.