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:
parent
49bca18209
commit
e4451a801b
@ -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() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user