Subscribe to real-time events
Subscribe to mutations for creating real-time clients:
1ApiOperation subscription = Amplify.API.subscribe(2 ModelSubscription.onCreate(Todo.class),3 onEstablished -> Log.i("ApiQuickStart", "Subscription established"),4 onCreated -> Log.i("ApiQuickStart", "Todo create subscription received: " + ((Todo) onCreated.getData()).getName()),5 onFailure -> Log.e("ApiQuickStart", "Subscription failed", onFailure),6 () -> Log.i("ApiQuickStart", "Subscription completed")7);8
9// Cancel the subscription listener when you're finished with it10subscription.cancel();
1val subscription = Amplify.API.subscribe(2 ModelSubscription.onCreate(Todo::class.java),3 { Log.i("ApiQuickStart", "Subscription established") },4 { Log.i("ApiQuickStart", "Todo create subscription received: ${(it.data as Todo).name}") },5 { Log.e("ApiQuickStart", "Subscription failed", it) },6 { Log.i("ApiQuickStart", "Subscription completed") }7)8
9// Cancel the subscription listener when you're finished with it10subscription.cancel();
1val job = activityScope.launch {2 try {3 Amplify.API.subscribe(ModelSubscription.onCreate(Todo::class.java))4 .catch { Log.e("ApiQuickStart", "Error on subscription", it) }5 .collect { Log.i("ApiQuickStart", "Todo created! ${it.data.name}") }6 } catch (notEstablished: ApiException) {7 Log.e("ApiQuickStart", "Subscription not established", it)8 }9}10
11// When done with subscription12job.cancel()
1RxSubscriptionOperation<? extends GraphQLResponse<?>> subscription =2 RxAmplify.API.subscribe(request);3
4subscription5 .observeConnectionState()6 .subscribe(connectionStateEvent -> Log.i("ApiQuickStart", String.valueOf(connectionStateEvent)));7
8subscription9 .observeSubscriptionData()10 .subscribe(11 data -> Log.i("ApiQuickStart", data),12 exception -> Log.e("ApiQuickStart", "Subscription failed.", exception),13 () -> Log.i("ApiQuickStart", "Subscription completed.")14 );15
16// Cancel the subscription listener when you're finished with it17subscription.cancel();