Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Handler simpleHandler  = new SimpleRequestHandler();
            Handler complexHandler = new ComplexRequestHandler();

            simpleHandler.SetNext(complexHandler);
            simpleHandler.TryToHandle("complex request");
        }
        /// <summary>
        /// Runs the client receiving messages example.
        /// </summary>
        /// <param name="cancellationToken">A token used to end the client example.</param>
        /// <param name="args">A single string should be used for the server url.</param>
        public async Task Run(CancellationToken cancellationToken, string[] args)
        {
            var serverUrl        = args[0];
            var session          = Diffusion.Sessions.Principal("control").Password("password").Open(serverUrl);
            var messagingControl = session.MessagingControl;
            var messagingPath    = ">random/requestResponse";

            var requestHandler             = new SimpleRequestHandler();
            var requestHandlerRegistration = await messagingControl.AddRequestHandlerAsync(
                messagingPath, requestHandler, cancellationToken);

            try {
                await Task.Delay(Timeout.InfiniteTimeSpan, cancellationToken);
            } finally {
                // Close session
                await requestHandlerRegistration.Close();

                session.Close();
            }
        }