Пример #1
0
        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();
            }
        }
Пример #2
0
 /// <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));
 }