public async Task <IMessage> ReceiveMessageAsync(IMessagePipeline messagePipeline, string messageUniqueIdentifier, CancellationToken token) { var inputStream = new WebSocketInputStream(this.webSocket); var message = await this.messageFactory.CreateMessage(inputStream, messageUniqueIdentifier); if (messagePipeline != null) { await messagePipeline.SendMessageAsync(message); } return(message); }
/// <summary> /// The receive message async. /// </summary> /// <param name="pipeline"></param> /// <param name="cancellationToken"> /// The cancellation token. /// </param> /// <returns> /// The <see cref="Task"/>. /// </returns> public async Task <IMessage> ReceiveMessageAsync(IMessagePipeline pipeline, CancellationToken cancellationToken) { await this.semaphore.WaitAsync(cancellationToken); IMessage message; // this will only fail if there is a bug in the program this.messages.TryDequeue(out message); await pipeline.SendMessageAsync(message); return(message); }
private Task ProcessGet(string messageHandlerName, IMessagePipeline pipeline) { var messageHandler = this.GetMessageHandler(messageHandlerName); var message = messageHandler.ReceiveMessageOrNull(); if (message != null) { return(pipeline.SendMessageAsync(message)); } return(Task.CompletedTask); }
public async Task <IMessage> ReceiveMessageAsync(IMessagePipeline pipeline, CancellationToken cancellationToken) { await this.WaitForNewMessageAsync(cancellationToken); IMessage message; this.requestMessages.TryDequeue(out message); if (pipeline != null) { await pipeline.SendMessageAsync(message); } return(message); }