public void ProducerConsumerSampleTest() { var messageResolverBuilder = new MessageHandlerResolverBuilder(); var eventHandle = new CountdownEvent(5); messageResolverBuilder.AddHandler(typeof(SessionRequestMessage), new SessionRequestMessageHandler( (message, token) => { eventHandle.Signal(); return(Task.CompletedTask); })); var cancellationTokenSource = new CancellationTokenSource(); using (var producerConsumerQueue = new ProducerConsumerQueue(messageResolverBuilder.Build(), cancellationTokenSource.Token)) { var sessionRequestMessage = new SessionRequestMessage( "123", new HandShakeRequest("1", "1"), new VaspInformation("1", "1", "1", null, null, null, null, "")); producerConsumerQueue.Enqueue(sessionRequestMessage); producerConsumerQueue.Enqueue(sessionRequestMessage); producerConsumerQueue.Enqueue(sessionRequestMessage); producerConsumerQueue.Enqueue(sessionRequestMessage); producerConsumerQueue.Enqueue(sessionRequestMessage); eventHandle.Wait(1_000); } }
public VaspSession( VaspContractInfo vaspContractInfo, VaspInformation vaspInfo, string counterPartyPubSigningKey, string sharedEncryptionKey, string privateSigningKey, IWhisperRpc whisperRpc, ITransportClient transportClient, ISignService signService) { this._vaspInfo = vaspInfo; this._vaspContractInfo = vaspContractInfo; this._sessionTopic = TopicGenerator.GenerateSessionTopic(); this._cancellationTokenSource = new CancellationTokenSource(); this._whisperRpc = whisperRpc; this._sharedKey = sharedEncryptionKey; this._privateSigningKey = privateSigningKey; this._counterPartyPubSigningKey = counterPartyPubSigningKey; this._messageHandlerResolverBuilder = new MessageHandlerResolverBuilder(); this._transportClient = transportClient; this._signService = signService; }