Frage:
Kann man gRPC verwenden, um Daten vom Server zu übertragen? an den Kunden? Stellen Sie sich ein Pub/Sub-Muster mit einem unendlichen Antwortstrom auf dem Server und einer nie endenden Routine auf dem Client vor, die ständig aus diesem Strom liest.
// Service proto service Service { rpc RegularChanges (Void) returns (stream Change) {} } // Server implementation func (self *MyServiceImpl) RegularChanges(in *pb.Void, stream pb.Service_RegularChangesServer) error { for { stream.Send(&pb.Change{Name:"toto", Description:"status changed"}) time.Sleep(d) } return nil } // Client for { change, err := streamChanges.Recv() if err != nil { // Handle error } else { // Process change } }
Antwort:
gRPC ist für eine solche Verwendung konzipiert und ermöglicht ein Publish/Subscribe-Muster zwischen Client und Server. Allerdings sollten bestimmte Überlegungen berücksichtigt werden:
Das obige ist der detaillierte Inhalt vonKann gRPC Daten vom Server zum Client in einem Pub/Sub-Muster streamen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!