Closed alkee-allm closed 4 years ago
(참고)
gRPC dotnet 에서는 insecure credential 에서는 별도의 header 를 갖는 channel 을 생성할 수가 없음 ; https://github.com/alkee-allm/k2proto/issues/23#issuecomment-672693274
session helper IsOnline
함수의 경우 static
함수이기 때문에, service singleton 을 사용할 수 없다. client manager(channel, client pool)를 parameter 로 전달해야하는데, 좋아 보이지 않는다. 이 함수 단독으로 사용하는 별도의 manager 를 static 으로 만들어 사용할 것.
private static Net.GrpcClients clients = new Net.GrpcClients();
internal static async Task<bool> IsOnline(string userId, string pushBackendAddress, Metadata backendHeader)
{
var client = clients.GetClient<SessionHost.SessionHostClient>(pushBackendAddress); // 연결되어있는 서버(Host)에 직접 호출
var response = await client.IsOnlineAsync(new IsOnlineRequest { UserId = userId }, backendHeader);
return response.Result == IsOnlineResponse.Types.ResultType.Online;
}
생성-삭제 overhead 가 있고, channel 과 stub 는 thread-safe 하므로 재사용이 가능. 가능하다면 재사용할 수 있도록