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); } }
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); } }