public async Task BasicPubSub(string url) { ISendAsyncContext <IMessage> pub = null; ISubAsyncContext <IMessage> sub = null; try { pub = Factory.PublisherCreate(url).Unwrap().CreateAsyncContext(Factory).Unwrap(); await WaitReady(); sub = Factory.SubscriberCreate(url).Unwrap().CreateAsyncContext(Factory).Unwrap(); var topic = TopicRandom(); Assert.Equal(0, sub.Subscribe(topic)); var msg = Factory.CreateMessage(); msg.Append(topic); var sendTask = pub.Send(msg); var resvTask = sub.Receive(CancellationToken.None); await AssertWait(DefaultTimeoutMs, sendTask, resvTask); } finally { sub?.Dispose(); pub?.Dispose(); } }
/// <summary> /// Unsubscribe from the specified topic. /// </summary> /// <returns>The unsubscribe.</returns> /// <param name="socket">Socket.</param> /// <param name="topic">Topic.</param> public static int Unsubscribe <T>(this ISubAsyncContext <T> socket, byte[] topic) { return(socket.Ctx.SetOpt(NNG_OPT_SUB_UNSUBSCRIBE, topic)); }