Maison > Article > développement back-end > gRPC peut-il diffuser des données du serveur vers le client dans un modèle Pub/Sub ?
Question :
Peut-on utiliser gRPC pour transmettre des données à partir du serveur au client ? Considérons un modèle pub/sub avec un flux de réponses infini sur le serveur et une routine sans fin sur le client qui lit constamment ce flux.
// 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 } }
Réponse :
gRPC est conçu pour une telle utilisation, facilitant un modèle de publication/abonnement entre le client et le serveur. Cependant, certaines considérations doivent être prises en compte :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!