Подписка на AWS AppSync onUpdate не работает на симуляторе - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь запустить подписку на Android.Я могу сделать все другие запросы, такие как создание, обновление, список и т. Д. На клиенте Android, но не по подписке.Однако в консоли AWS Appsync я могу открыть две вкладки консоли, создать подписку и добавить новые объекты, она работает там, я получаю обратные вызовы.

Ни один из методов не запускается на клиенте при добавлении объектов из консоли (Симулятор Android).

Я использую клиентский ключ для режима аутентификации.

Ниже мой код:

 private void subscribeNew(){
        OnCreateRtGuestSubscription subscription = OnCreateRtGuestSubscription.builder().build();
        subscriptionWatcher = mAWSAppSyncClient.subscribe(subscription);
        subscriptionWatcher.execute(new AppSyncSubscriptionCall.Callback() {
            @Override
            public void onResponse(@Nonnull Response response) {
                Log.i("Response", response.data().toString());

            }

            @Override
            public void onFailure(@Nonnull ApolloException e) {
                Log.i("Response", e.toString());

            }

            @Override
            public void onCompleted() {
                Log.i("Response","");

            }
        });
    }
 private AppSyncSubscriptionCall.Callback<OnUpdateRtGuestSubscription> subscriptionCallBack= new AppSyncSubscriptionCall.Callback<OnUpdateRtGuestSubscription>() {
        @Override
        public void onResponse(@Nonnull Response<OnUpdateRtGuestSubscription> response) {
                            Log.i("Response", "");

        }

        @Override
        public void onFailure(@Nonnull ApolloException e) {
                            Log.i("Response", "");

        }

        @Override
        public void onCompleted() {
                            Log.i("Response", "");

        }
    };



    private void subscribeEdit(){
        OnUpdateRtGuestSubscription subscription = OnUpdateRtGuestSubscription.builder().build();
        AppSyncSubscriptionCall subscriptionWatcher=this.mAWSAppSyncClient.subscribe(subscription);
        subscriptionWatcher.execute(subscriptionCallBack);
    }

2019-05-27 14: 45: 55.540 1362-1384 /?W / audio_hw_generic: недостаточно данных для HAL, ожидаемая позиция 13086062, только запись 13086000 2019-05-27 14: 45: 55.548 12881-13064 / com.example.umarfarooque.rtdbtest V / RealSubscriptionManager: инфраструктура подписки: добавление прослушивателя [comобъект45: 55.548 12881-13064 / com.example.umarfarooque.rtdbtest V / SubscriptionObject: Добавление слушателя в com.amazonaws.mobileconnectors.appsync.subscription.SubscriptionObject@926e8d9 2019-05-27 14: 45: 55.551 12881-13063 / com.Напримерусиливать.generated.graphql.OnUpdateRtGuestSubscription @ 836217f 2019-05-27 14: 45: 55.551 12881-13063 / com.example.umarfarooque.rtdbtest V / SubscriptionObject: Добавление прослушивателя в com.amazonaws.mobileconnectors.appsjectSub-05-27 14: 45: 55.564 12881-13067 / com.example.umarfarooque.rtdbtest D / RetryInterceptor: повторный перехватчик, вызываемый 2019-05-27 14: 45: 55.564 12881-13067 / com.example.umarfarooque.rtdbtest D /AppSyncSigV4SignerInterceptor: Перехватчик подписавшего абонента вызван 2019-05-27 14: 45: 55.566 12881-13067 / com.example.umarfarooque.rtdbtest D / AppSyncSigV4SignerInterceptor: ИД подписчика 61c60911-18ea-4ac2-8f157f5-ru-225-455: 55.773 12881-13067 / com.example.umarfarooque.rtdbtest I / RetryInterceptor: возвращение ответа сети: успех 2019-05-27 14: 45: 55.775 12881-13065 / com.example.umarfarooque.rtdbtest V / RealSubscriptionManager: инфраструктура подписки:подписаться необходимо для com.amazonaws.amplify.generated.graphql.OnCreateRtGuestSubscription@b3f4623 2019-05-27 14: 45: 55.776 12881-13065 / com.example.umarfarooque.rtdbtest D / RealSubscriptionManager: Инфраструктура подписки: добавление объекта подписки com.amazonaws.mobileconnectors.appsync.subscription.SubscriptionObject@926e8d9 в тему 44jjjjjv408388b10f697efc944dc0f96750be6b366bb7d1e9b6305769ea132320fa7470d.Всего объектов подписки: 2 2019-05-27 14: 45: 55.776 12881-13065 / com.example.umarfarooque.rtdbtest V / RealSubscriptionManager: Инфраструктура подписки: Попытка сделать [1] MQTT-клиентов] 2019-05-27 14:45: 56.779 12881-13065 / com.example.umarfarooque.rtdbtest V / MqttSubscriptionClient: инфраструктура подписки: установить передачу сообщения подписки для false для клиента [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14: 45: 56.779 1288foo.ump.rtdbtest V / MqttSubscriptionClient: инфраструктура подписки: установить соединение, передающее значение false для клиента [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14: 45: 56.780 12881-13065 / com.example.umarfarooque.rtdbtest сообщение подписки: подписка на подписку V / MqttSпередача в false для клиента [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14: 45: 56.780 12881-13065 / com.example.umarfarooque.rtdbtestV / MqttSubscriptionClient: инфраструктура подписки: установить соединение передача в false для клиента [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14: 45: 56.780 12881-13065 / com.example.umarfarooque.rtdbtest V / RealSubscriptionManager: инфраструктура подписки: подключение с идентификатором клиента [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14: 45: 56.780 12881-13065 / com.example.umarfarooque.rtdbtest V / MqttSubscriptionClient: инфраструктура подписки: вызов MQTT Соединитесь с фактической конечной точкой для идентификатора клиента [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14: 45: 57.143 12881-13072 / com.example.umarfarooque.rtdbtest D / AlarmPingSender: зарегистрировать приемник MqttServiceMqttService.pingSender.tgvihzfuync35pl4m6ihy6gidu 2019-05-27 14: 45: 57.145 12881-13072 / com.example.umarfarooque.rtdbtest D / AlarmPingSender: запланировать следующую тревогу на 1558961187145 2019-05-27 14: 45: 57.146 12881-13072 / com.example.umarfarooque.rtdbtest D / AlarmPingSender: схема тревоги с использованием setExactAndAllowWhileIdle, следующее: 30000 2019-05-27 14: 45: 57.151 12881-12881 / com.example.umarfarooque.rtdbtest V / RealSubscriptionManager: инфраструктура подписки: подключение успешно для clientID [tgvihzfuync35pl4m6ihy6gidu]. Подпишусь до 2 тем 2019-05-27 14: 45: 57.151 12881-12881 / com.example.umarfarooque.rtdbtest V / RealSubscriptionManager: инфраструктура подписки: подписка на MQTT Тема: [443301200413 / eytajgboqjcllkyv6jkqycc4me / onUpdateRTGuest / 08388b10f697efc944dc0f96750be6b366bb7d1e9b6305769ea132320fa7470d] 2019-05-27 14: 45: 57.151 12881-12881 / com.example.umarfarooque.rtdbtest В / MqttSubscriptionClient: com.amazonaws.mobileconnectors.appsync.subscription.mqtt.MqttSubscriptionClient@5c66981Subscription Инфраструктура: Попытка подписаться на тему 443301200413 / eytajgboqjcllkyv6jkqycc4me / onUpdateRTGuest / 08388b10f697efc944dc0f96750be6b366bb7d1e9b6305769ea132320fa7470d на clientID [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14: 45: 57.152 12881-12881 / com.example.umarfarooque.rtdbtest V / RealSubscriptionManager: инфраструктура подписки: подписка на MQTT Тема: [443301200413 / eytajgboqjcllkyv6jkqycc4me / onCreateRTGuest / 08388b10f697efc944dc0f96750be6b366bb7d1e9b6305769ea132320fa7470d] 2019-05-27 14: 45: 57.152 12881-12881 / com.example.umarfarooque.rtdbtest В / MqttSubscriptionClient: com.amazonaws.mobileconnectors.appsync.subscription.mqtt.MqttSubscriptionClient@5c66981Subscription Инфраструктура: Попытка подписаться на тему 443301200413 / eytajgboqjcllkyv6jkqycc4me / onCreateRTGuest / 08388b10f697efc944dc0f96750be6b366bb7d1e9b6305769ea132320fa7470d на clientID [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14: 45: 57.152 12881-13065 / com.example.umarfarooque.rtdbtest V / RealSubscriptionManager: инфраструктура подписки: выполнено [1] MQTT клиенты 2019-05-27 14: 45: 57.152 12881-13065 / com.example.umarfarooque.rtdbtest V / RealSubscriptionManager: инфраструктура подписки: включение звука новые клиенты [1] всего 2019-05-27 14: 45: 57.152 12881-13065 / com.example.umarfarooque.rtdbtest V / MqttSubscriptionClient: инфраструктура подписки: набор передача сообщения подписки на true для клиента [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14: 45: 57.152 12881-13065 / com.example.umarfarooque.rtdbtest V / MqttSubscriptionClient: инфраструктура подписки: установить соединение передача истинного для клиента [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14: 45: 57.152 12881-13065 / com.example.umarfarooque.rtdbtest V / RealSubscriptionManager: инфраструктура подписки: отключение старого клиенты [1] всего 2019-05-27 14: 45: 57.152 12881-13065 / com.example.umarfarooque.rtdbtest V / MqttSubscriptionClient: инфраструктура подписки: набор сообщение о подписке передается клиенту в false [7aybllsw45gfnbuahn3khahrr4] 2019-05-27 14: 45: 57.153 12881-13065 / com.example.umarfarooque.rtdbtest V / MqttSubscriptionClient: инфраструктура подписки: установить соединение передача в false для клиента [7aybllsw45gfnbuahn3khahrr4]2019-05-27 14: 45: 57.153 12881-13065 / com.example.umarfarooque.rtdbtest V / RealSubscriptionManager: Инфраструктура подписки: всего закрытие старых клиентов [1] 2019-05-27 14: 45: 57.153 12881-13065/com.example.umarfarooque.rtdbtest V / RealSubscriptionManager: инфраструктура подписки: закрывающий клиент: com.amazonaws.mobileconnectors.appsync.subscription.mqtt.MqttSubscriptionClient@90ffefa 2019-05-27 14: 45: 57.153 12881-13065 / com..umarfarooque.rtdbtest V / MqttSubscriptionClient: Закрытие MQTT-клиента [7aybllsw45gfnbuahn3khahrr4 2019-05-27 14: 45: 57.163 12881-13067 / com.example.umarfarooque.rtdbtest D / RetryInterceptor вызывается: 201-0557.163 12881-13067 / com.example.umarfarooque.rtdbtest D / AppSyncSigV4SignerInterceptor: Перехватчик подписавшего абонента, вызванный 2019-05-27 14: 45: 57.163 1288163 12881-13067 / com.example.umarfarooque.rtdbtest D / AppSyncSigVorSigner для подписчиков-4ac2-8a7f-79f13d7b03e6 2019-05-27 14: 45: 57.199 12881-13040 / com.example.umarfarooque.rtdbtest D / AlarmPingSender: отменить регистрацию получателя сигнала тревоги в MqttService7aybllsw45gfnbuahn3khahrr4

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Хорошо, так что для тех, кто столкнется с подобными проблемами в будущем, проблема заключается в схеме, используемой для определения подписки.

По умолчанию AWS добавляет параметры, которые необходимо добавить ещеэто работает, и вы не получаете никаких обратных вызовов.Итак, я изменил мою схему подписки на что-то вроде этого и вытащил новые изменения в моем приложении:

type Subscription {
    onCreateGuest: Guest
        @aws_subscribe(mutations: ["createGuest"])
    onUpdateGuest: Guest
        @aws_subscribe(mutations: ["updateGuest"])
    onDeleteGuest: Guest
        @aws_subscribe(mutations: ["deleteGuest"])
} 

Эта ссылка помогла мне понять и найти проблему.

0 голосов
/ 27 мая 2019

Попробуйте поместить наблюдатель как переменную уровня класса и не объявлять внутри вашего метода.

...