|
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using Grpc.Core;
- using JT808.Gateway.GrpcService;
- using Microsoft.Extensions.Hosting;
- using Microsoft.Extensions.Logging;
- using System.Text.Json;
-
- namespace JT808.Gateway.SimpleClient.Jobs
- {
- public class CallGrpcClientJob :IHostedService
- {
- private Channel channel;
- private readonly ILogger Logger;
- private Grpc.Core.Metadata AuthMetadata;
- public CallGrpcClientJob(
- ILoggerFactory loggerFactory)
- {
- Logger = loggerFactory.CreateLogger("CallGrpcClientJob");
- channel = new Channel("localhost:828",
- ChannelCredentials.Insecure);
- AuthMetadata = new Grpc.Core.Metadata();
- AuthMetadata.Add("token", "smallchi518");
- }
-
- public Task StartAsync(CancellationToken cancellationToken)
- {
- Task.Run(() =>
- {
- while (!cancellationToken.IsCancellationRequested)
- {
- JT808Gateway.JT808GatewayClient jT808GatewayClient = new JT808Gateway.JT808GatewayClient(channel);
- try
- {
- var result1 = jT808GatewayClient.GetTcpAtomicCounter(new Empty(), AuthMetadata);
- var result2 = jT808GatewayClient.GetTcpSessionAll(new Empty(), AuthMetadata);
- Logger.LogInformation($"[GetTcpAtomicCounter]:{JsonSerializer.Serialize(result1)}");
- Logger.LogInformation($"[GetTcpSessionAll]:{JsonSerializer.Serialize(result2)}");
- }
- catch (Exception ex)
- {
- Logger.LogError(ex, "Call Grpc Error");
- }
- try
- {
- var result1 = jT808GatewayClient.GetTcpAtomicCounter(new Empty());
- }
- catch (RpcException ex)
- {
- Logger.LogError($"{ex.StatusCode.ToString()}-{ex.Message}");
- }
- Thread.Sleep(3000);
- }
- }, cancellationToken);
- return Task.CompletedTask;
- }
-
- public Task StopAsync(CancellationToken cancellationToken)
- {
- channel.ShutdownAsync();
- return Task.CompletedTask;
- }
- }
- }
|