本文整理汇总了Golang中github.com/coreos/etcd/Godeps/_workspace/src/google/golang.org/grpc.Server.Serve方法的典型用法代码示例。如果您正苦于以下问题:Golang Server.Serve方法的具体用法?Golang Server.Serve怎么用?Golang Server.Serve使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/coreos/etcd/Godeps/_workspace/src/google/golang.org/grpc.Server
的用法示例。
在下文中一共展示了Server.Serve方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: serve
// serve accepts incoming connections on the listener l,
// creating a new service goroutine for each. The service goroutines
// read requests and then call handler to reply to them.
func serve(l net.Listener, grpcS *grpc.Server, handler http.Handler, readTimeout time.Duration) error {
// TODO: assert net.Listener type? Arbitrary listener might break HTTPS server which
// expect a TLS Conn type.
httpl := l
if grpcS != nil {
m := cmux.New(l)
grpcl := m.Match(cmux.HTTP2HeaderField("content-type", "application/grpc"))
httpl = m.Match(cmux.Any())
go func() { plog.Fatal(m.Serve()) }()
go plog.Fatal(grpcS.Serve(grpcl))
}
logger := defaultLog.New(ioutil.Discard, "etcdhttp", 0)
// TODO: add debug flag; enable logging when debug flag is set
srv := &http.Server{
Handler: handler,
ReadTimeout: readTimeout,
ErrorLog: logger, // do not log user error
}
return srv.Serve(httpl)
}