public async Task ListenAsync() { if (disposed) { throw new ObjectDisposedException(nameof(DefaultActiveConsumerProvider)); } if (listenResult == null) { var listenOptions = new ListenOptions() { FromQueue = activeConsumerOptions.FromQueue, AutoAcknowledge = activeConsumerOptions.AutoAcknowledge, ClientId = activeConsumerOptions.ClientId, Destination = activeConsumerOptions.Destination, Durable = activeConsumerOptions.Durable, Interval = activeConsumerOptions.Interval, PrefetchCount = activeConsumerOptions.PrefetchCount, RecoverWhenNotAcknowledge = activeConsumerOptions.RecoverWhenNotAcknowledge, Selector = activeConsumerOptions.Selector, SubscriberName = activeConsumerOptions.SubscriberName }; listenResult = await Consumer.ListenAsync(listenOptions, action); } }
public async Task ListenAsync() { if (disposed) { throw new ObjectDisposedException(nameof(DefaultKafkaConsumerProvider)); } if (listenResult == null) { listenResult = await Consumer.ListenAsync(kafkaConsumerOptions.Subscribers, recieveResult => { onMessageRecieved.Invoke(recieveResult); }); } }
public async Task ListenAsync() { if (disposed) { throw new ObjectDisposedException(nameof(DefaultRabbitConsumerProvider)); } if (listenResult == null) { if (string.IsNullOrEmpty(exchange)) { listenResult = Consumer.Listen(queue, options => { options.AutoDelete = rabbitConsumerOptions.AutoDelete; options.Durable = rabbitConsumerOptions.Durable; options.AutoAck = rabbitConsumerOptions.AutoAck; options.Arguments = rabbitConsumerOptions.Arguments; options.FetchCount = rabbitConsumerOptions.FetchCount; }, action); } else { listenResult = Consumer.Listen(exchange, queue, options => { options.AutoDelete = rabbitConsumerOptions.AutoDelete; options.Durable = rabbitConsumerOptions.Durable; options.AutoAck = rabbitConsumerOptions.AutoAck; options.Arguments = rabbitConsumerOptions.Arguments; options.FetchCount = rabbitConsumerOptions.FetchCount; options.Type = rabbitConsumerOptions.Type; options.RouteQueues = rabbitConsumerOptions.RouteQueues; }, action); } } await Task.CompletedTask; }
private void listenForConnections(int port) { logger.Write <ConnectionListener>(InfoLevel.Trace, $"The new thread has started."); // Start TCP listener logger.Write <ConnectionListener>(InfoLevel.Trace, "Starting tcp listener."); tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), port); tcpListener.Start(); hasStartedListening = false; while (true) { logger.Write <ConnectionListener>(InfoLevel.Trace, $"Start of listening while loop for new connections."); Task <TcpClient> acceptTcpClientTask = Task.Run(() => tcpListener.AcceptTcpClient()); logger.Write <ConnectionListener>(InfoLevel.Trace, $"_hasStartedListening={hasStartedListening}."); if (!hasStartedListening) { hasStartedListening = true; signalTcpListenerStarted(); } // Wait for connections or stop ListenResult listenResult = waitForNextConnectionOrStopSignal(acceptTcpClientTask); if (listenResult == ListenResult.StopListening) { break; } // Run OnClientConnected event logger.Write <ConnectionListener>(InfoLevel.Info, "Client connected."); OnClientConnected?.Invoke(acceptTcpClientTask.Result); } doneListeningForConnections.Set(); }