Exemple #1
0
 public WebSocketConnection(
     WebSocketTransport transport,
     SubscriptionServer subscriptionServer)
 {
     _transport = transport;
     _server    = subscriptionServer;
 }
        public WebSocketConnection CreateConnection(WebSocket socket, string tenantId, string connectionId)
        {
            _logger.LogDebug("Creating server for connection {connectionId}", connectionId);

            var transport = new WebSocketTransport(socket, _documentWriter);
            var manager   = new SubscriptionManager(_executer, _loggerFactory);
            var server    = new SubscriptionServer(
                transport,
                manager,
                _messageListeners.Union(new [] { new OspMessageListener(_ospService, tenantId) }),
                _loggerFactory.CreateLogger <SubscriptionServer>()
                );

            return(new WebSocketConnection(transport, server));
        }
    public WebSocketConnection CreateConnection(WebSocket socket, string connectionId)
    {
        _logger.LogDebug("Creating server for connection {connectionId}", connectionId);

        var transport = new WebSocketTransport(socket, _serializer);
        var manager   = new SubscriptionManager(_executer, _loggerFactory, _serviceScopeFactory);
        var server    = new SubscriptionServer(
            transport,
            manager,
            _messageListeners,
            _loggerFactory.CreateLogger <SubscriptionServer>()
            );

        return(new WebSocketConnection(transport, server));
    }
Exemple #4
0
        public async Task Connect()
        {
            _logger.LogInformation("Creating server for connection {connectionId}", ConnectionId);
            var transport = new WebSocketTransport(_socket);
            var server    = new SubscriptionServer(
                transport,
                _subscriptionManager,
                _messageListeners,
                _loggerFactory.CreateLogger <SubscriptionServer>());

            await server.OnConnect();

            await server.OnDisconnect();

            await transport.CloseAsync();
        }
Exemple #5
0
    public ChatSpec()
    {
        _chat            = new Chat();
        _transport       = new TestableSubscriptionTransport();
        _transportReader = _transport.Reader as TestableReader;
        _transportWriter = _transport.Writer as TestableWriter;
        _subscriptions   = new SubscriptionManager(
            new SchemaDocumentExecuter(new ChatSchema(_chat, new DefaultServiceProvider())),
            new NullLoggerFactory(),
            NoopServiceScopeFactory.Instance);

        _server = new SubscriptionServer(
            _transport,
            _subscriptions,
            new[] { new ProtocolMessageListener(new NullLogger <ProtocolMessageListener>(), new GraphQLSerializer()) },
            new NullLogger <SubscriptionServer>()
            );
    }
Exemple #6
0
        public ChatSpec()
        {
            _chat            = new Chat();
            _transport       = new TestableSubscriptionTransport();
            _transportReader = _transport.Reader as TestableReader;
            _transportWriter = _transport.Writer as TestableWriter;
            _subscriptions   = new SubscriptionManager(
                new DefaultSchemaExecuter <ChatSchema>(
                    new DocumentExecuter(),
                    new ChatSchema(_chat)),
                new NullLoggerFactory());

            _server = new SubscriptionServer(
                _transport,
                _subscriptions,
                Enumerable.Empty <IOperationMessageListener>(),
                new NullLogger <SubscriptionServer>()
                );
        }
 public SubscriptionServerFacts()
 {
     _messageListener  = Substitute.For <IOperationMessageListener>();
     _transport        = new TestableSubscriptionTransport();
     _transportReader  = _transport.Reader as TestableReader;
     _transportWriter  = _transport.Writer as TestableWriter;
     _documentExecuter = Substitute.For <IGraphQLExecuter>();
     _documentExecuter.ExecuteAsync(null, null, null).ReturnsForAnyArgs(
         new SubscriptionExecutionResult
     {
         Streams = new Dictionary <string, IObservable <ExecutionResult> >
         {
             { "1", Substitute.For <IObservable <ExecutionResult> >() }
         }
     });
     _subscriptionManager = new SubscriptionManager(_documentExecuter, new NullLoggerFactory());
     _sut = new SubscriptionServer(
         _transport,
         _subscriptionManager,
         new[] { _messageListener },
         new NullLogger <SubscriptionServer>());
 }
Exemple #8
0
 public ProtocolHandlerFacts()
 {
     _transport        = new TestableSubscriptionTransport();
     _transportReader  = _transport.Reader as TestableReader;
     _transportWriter  = _transport.Writer as TestableWriter;
     _documentExecuter = Substitute.For <IDocumentExecuter>();
     _documentExecuter.ExecuteAsync(null).ReturnsForAnyArgs(
         new ExecutionResult
     {
         Streams = new Dictionary <string, IObservable <ExecutionResult> >
         {
             { "1", Substitute.For <IObservable <ExecutionResult> >() }
         }
     });
     _subscriptionManager = new SubscriptionManager(_documentExecuter, new NullLoggerFactory(), NoopServiceScopeFactory.Instance);
     _sut    = new ProtocolMessageListener(new NullLogger <ProtocolMessageListener>(), new GraphQLSerializer());
     _server = new SubscriptionServer(
         _transport,
         _subscriptionManager,
         new[] { _sut },
         new NullLogger <SubscriptionServer>());
 }
Exemple #9
0
        public Bus(HostOptions hostOptions, IMessageTransport messageTransport, IHandlerFactory handlerFactory)
        {
            if (hostOptions == null)
            {
                throw new ArgumentNullException(nameof(hostOptions));
            }
            if (messageTransport == null)
            {
                throw new ArgumentNullException(nameof(messageTransport));
            }
            if (handlerFactory == null)
            {
                throw new ArgumentNullException(nameof(handlerFactory));
            }

            _cancelBusStart = new CancellationTokenSource();

            // Create components for the bus from config provided
            _subscriptionServer = new SubscriptionServer(hostOptions.AppName, messageTransport, handlerFactory);
            _publisher          = new Publisher(messageTransport);
            _startedServer      = Task.CompletedTask;
        }
Exemple #10
0
        public ChatSpec()
        {
            _chat            = new Chat();
            _transport       = new TestableSubscriptionTransport();
            _transportReader = _transport.Reader as TestableReader;
            _transportWriter = _transport.Writer as TestableWriter;
            _subscriptions   = new SubscriptionManager(
                new DefaultGraphQLExecuter <ChatSchema>(
                    new ChatSchema(_chat),
                    new DocumentExecuter(),
                    Options.Create(new GraphQLOptions()),
                    Enumerable.Empty <IDocumentExecutionListener>(),
                    Enumerable.Empty <IValidationRule>()
                    ),
                new NullLoggerFactory());

            _server = new SubscriptionServer(
                _transport,
                _subscriptions,
                new [] { new ProtocolMessageListener(new NullLogger <ProtocolMessageListener>()) },
                new NullLogger <SubscriptionServer>()
                );
        }