/// <inheritdoc/>
 protected override IReverseCallClient <PublicFilterClientToRuntimeMessage, FilterRuntimeToClientMessage, PublicFilterRegistrationRequest, FilterRegistrationResponse, FilterEventRequest, PartitionedFilterResponse> CreateClient()
 => _reverseCallClients.GetFor <PublicFilterClientToRuntimeMessage, FilterRuntimeToClientMessage, PublicFilterRegistrationRequest, FilterRegistrationResponse, FilterEventRequest, PartitionedFilterResponse>(
     () => _client.ConnectPublic(),
     (message, arguments) => message.RegistrationRequest = arguments,
     message => message.RegistrationResponse,
     message => message.FilterRequest,
     (message, response) => message.FilterResult   = response,
     (arguments, context) => arguments.CallContext = context,
     request => request.CallContext,
     (response, context) => response.CallContext = context,
     message => message.Ping,
     (message, pong) => message.Pong = pong,
     TimeSpan.FromSeconds(5));
    /// <inheritdoc/>
    public IEventHorizonConnection Create(MicroserviceAddress connectionAddress, ExecutionContext executionContext)
    {
        var client = _reverseCallClients.GetFor(
            new EventHorizonProtocol(),
            connectionAddress.Host,
            connectionAddress.Port,
            TimeSpan.FromSeconds(10));

        return(new EventHorizonConnection(
                   executionContext,
                   client,
                   _metrics,
                   _loggerFactory.CreateLogger <EventHorizonConnection>()));
    }
Пример #3
0
        IReverseCallClient <EventHorizonConsumerToProducerMessage, EventHorizonProducerToConsumerMessage, ConsumerSubscriptionRequest, Contracts.SubscriptionResponse, ConsumerRequest, ConsumerResponse> CreateClient(
            MicroserviceAddress microserviceAddress,
            CancellationToken cancellationToken)
        {
            var client = _clientManager.Get <Contracts.Consumer.ConsumerClient>(
                microserviceAddress.Host,
                microserviceAddress.Port);

            return(_reverseCallClients.GetFor <EventHorizonConsumerToProducerMessage, EventHorizonProducerToConsumerMessage, ConsumerSubscriptionRequest, Contracts.SubscriptionResponse, ConsumerRequest, ConsumerResponse>(
                       () => client.Subscribe(cancellationToken: cancellationToken),
                       (message, arguments) => message.SubscriptionRequest = arguments,
                       message => message.SubscriptionResponse,
                       message => message.Request,
                       (message, response) => message.Response = response,
                       (arguments, context) => arguments.CallContext = context,
                       request => request.CallContext,
                       (response, context) => response.CallContext = context,
                       message => message.Ping,
                       (message, pong) => message.Pong = pong,
                       TimeSpan.FromSeconds(7)));
        }