gRPC服务器流式传输1条消息

问题描述 投票:0回答:2

我在互联网上看到了这个示例,并且想知道,为什么您要使用流仅向回发1条消息?仅返回一元不是更有效吗?

@Override
public void getFeature(Point request, StreamObserver<Feature> responseObserver) {
  responseObserver.onNext(checkFeature(request));
  responseObserver.onCompleted();
}

...

private Feature checkFeature(Point location) {
  for (Feature feature : features) {
    if (feature.getLocation().getLatitude() == location.getLatitude()
        && feature.getLocation().getLongitude() == location.getLongitude()) {
      return feature;
    }
  }

  // No feature was found, return an unnamed feature.
  return Feature.newBuilder().setName("").setLocation(location).build();
}

来源:https://grpc.io/docs/tutorials/basic/java/

java grpc
2个回答
0
投票

首先,该示例用于说明流媒体概念。在这种特殊情况下,碰巧它最终只回发了一条消息。但是,需要针对最普遍的情况设计API,在这种情况下,对于给定的位置,可能有多个功能,并且由于某种原因,它们不能在一元响应中组合成一个数组。


0
投票

[好吧,显然我对Java和C#中gRPC的区别感到困惑。我曾经使用C#进行开发,但是在Java中,对于Unary gRPC,他们使用streamObserver对象进行响应。这很令人困惑...

© www.soinside.com 2019 - 2024. All rights reserved.