예제 #1
0
        private void BroadcastConnectionEvents(AppConnectionEvent connectionEvent)
        {
            var lifecycleEvent = new AppLifecycleEvent();

            switch (connectionEvent.Type)
            {
            case ConnectionEventType.AppConnected:
                lifecycleEvent.Connected = new AppConnectedEvent
                {
                    ConnectionDescriptor = connectionEvent.Connection.ToProto()
                };
                break;

            case ConnectionEventType.AppDisconnected:
                lifecycleEvent.Disconnected = new AppDisconnectedEvent
                {
                    ConnectionDescriptor = connectionEvent.Connection.ToProto()
                };
                break;

            case ConnectionEventType.AppConnectionError:
                lifecycleEvent.Error = new AppConnectionErrorEvent
                {
                    ConnectionDescriptor = connectionEvent.Connection.ToProto()
                };
                break;

            default:
                Log.Error($"Unknown connection event type {connectionEvent.Type}");
                return;
            }
            ;
            _appLifecycleEventBroadcaster.OnNext(lifecycleEvent);
        }
        private void OnAppConnectedOrDisconnected(AppConnectionEvent connectionEvent)
        {
            var connection    = connectionEvent.Connection;
            var contextsOfApp = _contextsSet.GetContextsOf(connection.ApplicationInstanceId);

            foreach (var context in contextsOfApp)
            {
                if (connectionEvent.Type == ConnectionEventType.AppConnected)
                {
                    context.AppConnected(connection);
                }
                else
                {
                    context.AppDisconnected(connection);
                }
            }
        }
예제 #3
0
        private void OnAppConnectedOrDisconnected(AppConnectionEvent connectionEvent)
        {
            var connection    = connectionEvent.Connection;
            var contextsOfApp = _contextsSet.GetContextsOf(connection.ApplicationInstanceId);

            foreach (var context in contextsOfApp)
            {
                switch (connectionEvent.Type)
                {
                case ConnectionEventType.AppConnected:
                    context.AppConnected(connection);
                    break;

                case ConnectionEventType.AppDisconnected:
                    context.AppDisconnected(connection);
                    break;
                }
            }
        }
        private void BroadcastConnectionEvents(AppConnectionEvent connectionEvent)
        {
            var lifecycleEvent = new AppLifecycleEvent();

            if (connectionEvent.Type == ConnectionEventType.AppConnected)
            {
                lifecycleEvent.Connected = new AppConnectedEvent
                {
                    ConnectionDescriptor = connectionEvent.Connection.ToProto()
                };
            }
            else
            {
                lifecycleEvent.Disconnected = new AppDisconnectedEvent
                {
                    ConnectionDescriptor = connectionEvent.Connection.ToProto()
                };
            }
            _appLifecycleEventBroadcaster.BroadcastEvent(lifecycleEvent);
        }
        private GetConnectionsEvent CreateGetConnectionsEvent(GetConnectionsRequest request, AppConnectionEvent appConnectionEvent)
        {
            var response = CreateInitialGetConnectionsEvent(request);

            if (appConnectionEvent.Type == ConnectionEventType.AppConnected)
            {
                response.NewConnection = appConnectionEvent.Connection.ToProto();
            }
            else
            {
                response.ClosedConnection = appConnectionEvent.Connection.ToProto();
            }
            return(response);
        }
예제 #6
0
        private GetConnectionsEvent CreateGetConnectionsEvent(GetConnectionsRequest request, AppConnectionEvent appConnectionEvent)
        {
            var response = CreateInitialGetConnectionsEvent(request);

            switch (appConnectionEvent.Type)
            {
            case ConnectionEventType.AppConnected:
                response.NewConnection = appConnectionEvent.Connection.ToProto();
                return(response);

            case ConnectionEventType.AppDisconnected:
                response.ClosedConnection = appConnectionEvent.Connection.ToProto();
                return(response);

            default:
                return(null);
            }
        }