AWS AppSync onUpdate订阅不适用于模拟器

时间:2019-05-26 23:35:36

标签: android subscription aws-appsync

我正在尝试在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.example.umarfarooque.rtdbtest.MainActivity$2@361b720]   订阅对象:   com.amazonaws.amplify.generation.graphql.OnCreateRtGuestSubscription@b3f4623   得到了:   com.amazonaws.amplify.generation.graphql.OnCreateRtGuestSubscription@b3f4623   2019-05-27 14: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.example.umarfarooque.rtdbtest   V / RealSubscriptionManager:订阅基础结构:添加   侦听器[com.example.umarfarooque.rtdbtest.MainActivity$1@3f740ef]   订阅对象:   com.amazonaws.amplify.generation.graphql.OnUpdateRtGuestSubscription@836217f   得到了:   com.amazonaws.amplify.generation.graphql.OnUpdateRtGuestSubscription@836217f   2019-05-27 14:45:55.551 12881-13063 / com.example.umarfarooque.rtdbtest   V / SubscriptionObject:将侦听器添加到   com.amazonaws.mobileconnectors.appsync.subscription.SubscriptionObject@47b254c   2019-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:订阅者ID为   61c60911-18ea-4ac2-8a7f-79f13d7b03e6 2019-05-27 14:45: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.generation.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   话题   443301200413 / eytajgboqjcllkyv6jkqycc4me / onCreateRTGuest / 08388b10f697efc944dc0f96750be6b366bb7d1e9b6305769ea132320fa7470d。   订阅总数: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   12881-13065 / com.example.umarfarooque.rtdbtest   V / MqttSubscriptionClient:订阅基础结构:设置连接   为客户端传输为false [tgvihzfuync35pl4m6ihy6gidu]   2019-05-27 14:45:56.780 12881-13065 / com.example.umarfarooque.rtdbtest   V / MqttSubscriptionClient:订阅基础结构:设置   订阅消息向客户端发送为false   [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14:45:56.780   12881-13065 / com.example.umarfarooque.rtdbtest   V / MqttSubscriptionClient:订阅基础结构:设置连接   为客户端传输为false [tgvihzfuync35pl4m6ihy6gidu]   2019-05-27 14:45:56.780 12881-13065 / com.example.umarfarooque.rtdbtest   V / RealSubscriptionManager:订阅基础结构:正在连接   带有客户端ID [tgvihzfuync35pl4m6ihy6gidu] 2019-05-27 14:45:56.780   12881-13065 / com.example.umarfarooque.rtdbtest   V / MqttSubscriptionClient:订阅基础结构:调用MQTT   与实际端点连接以获取客户机ID [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   V / 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   V / 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:订阅基础结构:Made [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:订阅基础结构:设置连接   为客户端传输为true [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.example.umarfarooque.rtdbtest   V / MqttSubscriptionClient:关闭MQTT客户端   [7aybllsw45gfnbuahn3khahrr4 2019-05-27 14:45:57.163   12881-13067 / com.example.umarfarooque.rtdbtest D / RetryInterceptor:   重试拦截器称为2019-05-27 14:45:57.163   12881-13067 / com.example.umarfarooque.rtdbtest   D / AppSyncSigV4SignerInterceptor:签名者拦截器称为2019-05-27   14:45:57.163 12881-13067 / com.example.umarfarooque.rtdbtest   D / AppSyncSigV4SignerInterceptor:订阅者ID为   61c60911-18ea-4ac2-8a7f-79f13d7b03e6 2019-05-27 14:45:57.199   12881-13040 / com.example.umarfarooque.rtdbtest D / AlarmPingSender:   向MqttService7aybllsw45gfnbuahn3khahrr4取消注册警报接收器

2 个答案:

答案 0 :(得分:0)

尝试将观察者作为类级别的变量,不要在方法内部声明。

答案 1 :(得分:0)

  

好吧,对于那些将来面临类似问题的人来说,问题在于   用于定义订阅的模式。

默认情况下,AWS添加您需要放入的参数,否则它将不起作用,并且您不会获得任何回调。因此,我修改了用于订阅这样的内容的模式,并将新的更改应用于我的应用程序:

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

这个link帮助我了解并找到了问题。