問題:
可以利用 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中文網其他相關文章!