public async Task CanConnectViaLookupConnection()
        {
            options.Topic   = "foo";
            options.Channel = "bar";
            var tcs = new TaskCompletionSource <bool>();

            using (var consumer = new NsqLookupConsumer(options))
            {
                consumer.InternalMessages += OutputMessage;
                await consumer.ConnectAndWaitAsync(msg =>
                {
                    tcs.TrySetResult(true);
                    return(msg.FinishAsync());
                });

                await Task.WhenAll(
                    consumer.SetMaxInFlightAsync(100),
                    consumer.PublishAsync(options.Topic, "hello"));

                var task = tcs.Task;
                var done = await Task.WhenAny(task, Task.Delay(1000));

                Assert.Same(task, done);
            }
        }
Example #2
0
        void ConnectButton_Click(object sender, EventArgs e)
        {
            var connectionString = ConnectionString.Text;
            var options          = ConsumerOptions.Parse(connectionString);

            _nsq = new NsqLookupConsumer(options);
            _nsq.DiscoveryCompleted += _nsq_DiscoveryCompleted;
            _nsq.InternalMessages   += _nsq_InternalMessages;
            _nsq.Connect(async msg =>
            {
                await c_MessageReceived(msg);
                await msg.FinishAsync();
            });
        }
        public async Task CanConnectViaLookupConnection()
        {
            options.Topic = "foo";
            options.Channel = "bar";
            var tcs = new TaskCompletionSource<bool>();
            using (var consumer = new NsqLookupConsumer(options))
            {
                consumer.InternalMessages += OutputMessage;
                await consumer.ConnectAndWaitAsync(msg =>
                {
                    tcs.TrySetResult(true);
                    return msg.FinishAsync();
                });

                await Task.WhenAll(
                    consumer.SetMaxInFlightAsync(100),
                    consumer.PublishAsync(options.Topic, "hello"));
                var task = tcs.Task;
                var done = await Task.WhenAny(task, Task.Delay(1000));
                Assert.Same(task, done);
            }
        }