MCPcopy
hub / github.com/grpc/grpc-go / ServeHTTP

Method ServeHTTP

server.go:1123–1135  ·  view source on GitHub ↗

ServeHTTP implements the Go standard library's http.Handler interface by responding to the gRPC request r, by looking up the requested gRPC method in the gRPC server s. The provided HTTP request must have arrived on an HTTP/2 connection. When using the Go standard library's server, practically this

(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

1121// Notice: This API is EXPERIMENTAL and may be changed or removed in a
1122// later release.
1123func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
1124 st, err := transport.NewServerHandlerTransport(w, r, s.statsHandler, s.opts.bufferPool)
1125 if err != nil {
1126 // Errors returned from transport.NewServerHandlerTransport have
1127 // already been written to w.
1128 return
1129 }
1130 if !s.addConn(listenerAddressForServeHTTP, st) {
1131 return
1132 }
1133 defer s.removeConn(listenerAddressForServeHTTP, st)
1134 s.serveStreams(r.Context(), st, nil)
1135}
1136
1137func (s *Server) addConn(addr string, st transport.ServerTransport) bool {
1138 s.mu.Lock()

Callers 1

Calls 5

addConnMethod · 0.95
removeConnMethod · 0.95
serveStreamsMethod · 0.95
ContextMethod · 0.65

Tested by 1