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