Пример использования GRPCcall2 - PullRequest
0 голосов
/ 21 мая 2019

В нашей кодовой базе iOS мы используем GRPCcall для настройки нашего соединения с сервером. Я только что заметил, что в библиотеке Objective C gRPC класс GRPCcall обозначен как устаревший:

/**
 * This interface is deprecated. Please use \a GRPCcall2.
 *
 * Represents a single gRPC remote call.
 */

Комментарии указывают, что мы должны использовать GRPCcall2 вместо этого. Но использование, кажется, отличается, и основано на различных понятиях. Например, комментарии выше GRPCcall2 говорят

/**
 * Call related parameters. These parameters are automatically 
   specified by Protobuf. If directly
 * using the \a GRPCCall2 class, users should specify these parameters 
   manually.
 */

предполагает, что пользователям обычно не нужно использовать этот класс.

На момент публикации этого вопроса руководство Основы gRPC по-прежнему ссылается на класс GRPCcall (теперь устарел), как и руководство по быстрому запуску gRPC Object-C, Кажется, я не могу найти никакой документации для нового GRPCcall2, кроме того, что в комментариях.

Так, например, со старым классом я мог бы сделать

GRPCCall.enableRetry(true, forHost: "bla")

Как бы я достиг этого с новым классом?

1 Ответ

1 голос
/ 22 мая 2019

Примеры использования GRPCCall2 можно найти в https://github.com/grpc/grpc/blob/master/src/objective-c/tests/APIv2Tests/APIv2Tests.m.

Свойство retryEnabled находится в GRPCMutableCallOptions .

Вы можете сделать что-то вроде этого:

  GRPCMutableCallOptions *options = [[GRPCMutableCallOptions alloc] init];
  options.retryEnabled = YES;
  GRPCCall2 *call = [[GRPCCall2 alloc]
      initWithRequestOptions:requestOptions
      responseHandler:handler
      callOptions:options];

Примеры Objective-C также обновлены для использования v2 API

...