Подписка AWS AppSync onUpdate не работает на симуляторе

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

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

I am using client key for auth mode.

Ниже мой код:

 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: Not supplying enough data to HAL, expected position 13086062 , only wrote 13086000 2019-05-27 14:45:55.548 12881-13064/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: Adding listener [com.example.umarfarooque.rtdbtest.MainActivity$2@361b720] to SubscriptionObject: com.amazonaws.amplify.generated.graphql.OnCreateRtGuestSubscription@b3f4623 got: com.amazonaws.amplify.generated.graphql.OnCreateRtGuestSubscription@b3f4623 2019-05-27 14:45:55.548 12881-13064/com.example.umarfarooque.rtdbtest V/SubscriptionObject: Adding listener to com.amazonaws.mobileconnectors.appsync.subscription.SubscriptionObject@926e8d9 2019-05-27 14:45:55.551 12881-13063/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: Adding listener [com.example.umarfarooque.rtdbtest.MainActivity$1@3f740ef] to SubscriptionObject: com.amazonaws.amplify.generated.graphql.OnUpdateRtGuestSubscription@836217f got: com.amazonaws.amplify.generated.graphql.OnUpdateRtGuestSubscription@836217f 2019-05-27 14:45:55.551 12881-13063/com.example.umarfarooque.rtdbtest V/SubscriptionObject: Adding listener to com.amazonaws.mobileconnectors.appsync.subscription.SubscriptionObject@47b254c 2019-05-27 14:45:55.564 12881-13067/com.example.umarfarooque.rtdbtest D/RetryInterceptor: Retry Interceptor called 2019-05-27 14:45:55.564 12881-13067/com.example.umarfarooque.rtdbtest D/AppSyncSigV4SignerInterceptor: Signer Interceptor called 2019-05-27 14:45:55.566 12881-13067/com.example.umarfarooque.rtdbtest D/AppSyncSigV4SignerInterceptor: Subscriber ID is 61c60911-18ea-4ac2-8a7f-79f13d7b03e6 2019-05-27 14:45:55.773 12881-13067/com.example.umarfarooque.rtdbtest I/RetryInterceptor: Returning network response: success 2019-05-27 14:45:55.775 12881-13065/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: subscribe called for com.amazonaws.amplify.generated.graphql.OnCreateRtGuestSubscription@b3f4623 2019-05-27 14:45:55.776 12881-13065/com.example.umarfarooque.rtdbtest D/RealSubscriptionManager: Subscription Infrastructure: Adding subscription object com.amazonaws.mobileconnectors.appsync.subscription.SubscriptionObject@926e8d9 to topic 443301200413/eytajgboqjcllkyv6jkqycc4me/onCreateRTGuest/08388b10f697efc944dc0f96750be6b366bb7d1e9b6305769ea132320fa7470d. Total subscription objects: 2 2019-05-27 14:45:55.776 12881-13065/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: Attempting to make [1] MQTT clients] 2019-05-27 14:45:56.779 12881-13065/com.example.umarfarooque.rtdbtest V/MqttSubscriptionClient: Subscription Infrastructure: Set subscription message transmitting to false for client [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14:45:56.779 12881-13065/com.example.umarfarooque.rtdbtest V/MqttSubscriptionClient: Subscription Infrastructure: Set Connection transmitting to false for client [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14:45:56.780 12881-13065/com.example.umarfarooque.rtdbtest V/MqttSubscriptionClient: Subscription Infrastructure: Set subscription message transmitting to false for client [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14:45:56.780 12881-13065/com.example.umarfarooque.rtdbtest V/MqttSubscriptionClient: Subscription Infrastructure: Set Connection transmitting to false for client [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14:45:56.780 12881-13065/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: Connecting with Client ID[tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14:45:56.780 12881-13065/com.example.umarfarooque.rtdbtest V/MqttSubscriptionClient: Subscription Infrastructure: Calling MQTT Connect with actual endpoint for client ID[tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14:45:57.143 12881-13072/com.example.umarfarooque.rtdbtest D/AlarmPingSender: Register alarmreceiver to MqttServiceMqttService.pingSender.tgvihzfuync35pl4m6ihy6gidu 2019-05-27 14:45:57.145 12881-13072/com.example.umarfarooque.rtdbtest D/AlarmPingSender: Schedule next alarm at 1558961187145 2019-05-27 14:45:57.146 12881-13072/com.example.umarfarooque.rtdbtest D/AlarmPingSender: Alarm scheule using setExactAndAllowWhileIdle, next: 30000 2019-05-27 14:45:57.151 12881-12881/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: Connection successful for clientID [tgvihzfuync35pl4m6ihy6gidu]. Will subscribe up to 2 topics 2019-05-27 14:45:57.151 12881-12881/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: Subscribing to MQTT topic:[443301200413/eytajgboqjcllkyv6jkqycc4me/onUpdateRTGuest/08388b10f697efc944dc0f96750be6b366bb7d1e9b6305769ea132320fa7470d] 2019-05-27 14:45:57.151 12881-12881/com.example.umarfarooque.rtdbtest V/MqttSubscriptionClient: com.amazonaws.mobileconnectors.appsync.subscription.mqtt.MqttSubscriptionClient@5c66981Subscription Infrastructure: Attempting to subscribe to topic 443301200413/eytajgboqjcllkyv6jkqycc4me/onUpdateRTGuest/08388b10f697efc944dc0f96750be6b366bb7d1e9b6305769ea132320fa7470d on clientID [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14:45:57.152 12881-12881/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: Subscribing to MQTT topic:[443301200413/eytajgboqjcllkyv6jkqycc4me/onCreateRTGuest/08388b10f697efc944dc0f96750be6b366bb7d1e9b6305769ea132320fa7470d] 2019-05-27 14:45:57.152 12881-12881/com.example.umarfarooque.rtdbtest V/MqttSubscriptionClient: com.amazonaws.mobileconnectors.appsync.subscription.mqtt.MqttSubscriptionClient@5c66981Subscription Infrastructure: Attempting to subscribe to topic 443301200413/eytajgboqjcllkyv6jkqycc4me/onCreateRTGuest/08388b10f697efc944dc0f96750be6b366bb7d1e9b6305769ea132320fa7470d on clientID [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14:45:57.152 12881-13065/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: Made [1] MQTT clients 2019-05-27 14:45:57.152 12881-13065/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: Unmuting the new clients [1] in total 2019-05-27 14:45:57.152 12881-13065/com.example.umarfarooque.rtdbtest V/MqttSubscriptionClient: Subscription Infrastructure: Set subscription message transmitting to true for client [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14:45:57.152 12881-13065/com.example.umarfarooque.rtdbtest V/MqttSubscriptionClient: Subscription Infrastructure: Set Connection transmitting to true for client [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14:45:57.152 12881-13065/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: Muting the old clients [ 1] in total 2019-05-27 14:45:57.152 12881-13065/com.example.umarfarooque.rtdbtest V/MqttSubscriptionClient: Subscription Infrastructure: Set subscription message transmitting to false for client [7aybllsw45gfnbuahn3khahrr4] 2019-05-27 14:45:57.153 12881-13065/com.example.umarfarooque.rtdbtest V/MqttSubscriptionClient: Subscription Infrastructure: Set Connection transmitting to false for client [7aybllsw45gfnbuahn3khahrr4] 2019-05-27 14:45:57.153 12881-13065/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: Closing the old clients [1] in total 2019-05-27 14:45:57.153 12881-13065/com.example.umarfarooque.rtdbtest V/RealSubscriptionManager: Subscription Infrastructure: Closing client: com.amazonaws.mobileconnectors.appsync.subscription.mqtt.MqttSubscriptionClient@90ffefa 2019-05-27 14:45:57.153 12881-13065/com.example.umarfarooque.rtdbtest V/MqttSubscriptionClient: Closing MQTT client [7aybllsw45gfnbuahn3khahrr4 2019-05-27 14:45:57.163 12881-13067/com.example.umarfarooque.rtdbtest D/RetryInterceptor: Retry Interceptor called 2019-05-27 14:45:57.163 12881-13067/com.example.umarfarooque.rtdbtest D/AppSyncSigV4SignerInterceptor: Signer Interceptor called 2019-05-27 14:45:57.163 12881-13067/com.example.umarfarooque.rtdbtest D/AppSyncSigV4SignerInterceptor: Subscriber ID is 61c60911-18ea-4ac2-8a7f-79f13d7b03e6 2019-05-27 14:45:57.199 12881-13040/com.example.umarfarooque.rtdbtest D/AlarmPingSender: Unregister alarmreceiver to MqttService7aybllsw45gfnbuahn3khahrr4

Можете ли вы опубликовать фрагмент кода того, как вы строите объект AWSAppSyncClient?

Karthikeyan 27.05.2019 20:52
1
1
1 387
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Нет, все еще не работает. Я добавляю и редактирую объекты из консоли, но в приложении ничего не обнаруживается. Я добавил журналы для справки.

Umar Farooque 27.05.2019 14:48
Ответ принят как подходящий

Ok so for those who face similar issues in future, the problem lies in the schema used to define subscription.

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

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

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

Другие вопросы по теме