1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-24 04:22:22 +00:00

ch4.5.4: 增加http和grpc共享端口的例子

This commit is contained in:
chai2010 2018-12-27 19:25:29 +08:00
parent 49bca18209
commit e4451a801b

View File

@ -351,9 +351,21 @@ myServer := grpc.NewServer(
## 4.5.4 和Web服务共存 ## 4.5.4 和Web服务共存
gRPC构建在HTTP/2协议之上因此我们可以将gRPC服务和普通的Web服务架设在同一个端口之上。因为目前Go语言版本的gRPC实现还不够完善只有启用了TLS协议之后才能将gRPC和Web服务运行在同一个端口。 gRPC构建在HTTP/2协议之上因此我们可以将gRPC服务和普通的Web服务架设在同一个端口之上。
服务器证书的生成过程前文已经讲过这里不再赘述。启用普通的https服务器非常简单 对于没有启动TLS协议的服务则需要对HTTP2/2特性做适当的调整
```go
func main() {
mux := http.NewServeMux()
h2Handler := h2c.NewHandler(mux, &http2.Server{})
server = &http.Server{Addr: ":3999", Handler: h2Handler}
server.ListenAndServe()
}
```
启用普通的https服务器则非常简单
```go ```go
func main() { func main() {