질문:
gRPC를 활용하여 서버에서 데이터를 푸시할 수 있나요? 클라이언트에게? 서버의 무한 응답 스트림과 이 스트림에서 지속적으로 읽는 클라이언트의 끝없는 루틴이 있는 게시/구독 패턴을 생각해 보세요.
// 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 } }
답변:
gRPC는 이러한 용도로 설계되어 클라이언트와 서버 간의 게시/구독 패턴을 촉진합니다. 그러나 특정 고려 사항을 해결해야 합니다.
위 내용은 gRPC는 Pub/Sub 패턴으로 서버에서 클라이언트로 데이터를 스트리밍할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!