Ejemplo n.º 1
0
        public override async Task SubscribeForConsumingMessages(AnalogyConsumerMessage request, IServerStreamWriter <AnalogyGRPCLogMessage> responseStream, ServerCallContext context)
        {
            _grpcLogConsumer.AddGrpcConsumer(request.Message, responseStream);
            await responseStream.WriteAsync(new AnalogyGRPCLogMessage
            {
                Category    = "Server Message",
                Text        = "Connection Established. Streaming old messages (if Any)",
                Level       = AnalogyGRPCLogLevel.Analogy,
                Date        = Timestamp.FromDateTime(DateTime.UtcNow),
                FileName    = "",
                Id          = Guid.NewGuid().ToString(),
                LineNumber  = 0,
                MachineName = Environment.MachineName,
                Module      = Process.GetCurrentProcess().ProcessName,
                ProcessId   = Process.GetCurrentProcess().Id,
                Source      = "Server Operations",
                ThreadId    = Thread.CurrentThread.ManagedThreadId,
                User        = Environment.UserName
            });

            //var oldMessages = await MessageHistoryContainer.GetOldMessages().ConfigureAwait(false);
            //if (oldMessages.Any())
            //{
            //    await responseStream.WriteAllAsync(oldMessages);
            //}

            try
            {
                await AwaitCancellation(context.CancellationToken);
            }
            catch (Exception e)
            {
                Logger.LogError(e, "Error");
            }
        }
        public AnalogyMessageConsumer(string address)
        {
            //using var channel = GrpcChannel.ForAddress("http://localhost:6000");
            channel = GrpcChannel.ForAddress(address);
            client  = new Analogy.AnalogyClient(channel);
            AnalogyConsumerMessage m = new AnalogyConsumerMessage {
                Message = "client"
            };

            _stream = client.SubscribeForConsumingMessages(m);
        }
        public AnalogyMessageConsumer(string address)
        {
            channel = new Channel(address, ChannelCredentials.Insecure);
            client  = new Analogy.AnalogyClient(channel);
            AnalogyConsumerMessage m = new AnalogyConsumerMessage {
                Message = "client"
            };

            _stream  = client.SubscribeForConsumingMessages(m);
            consumer = Task.Factory.StartNew(GetMessages);
        }