Page updated Feb 19, 2024

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 it
10subscription.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 it
10subscription.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 subscription
12job.cancel()
1RxSubscriptionOperation<? extends GraphQLResponse<?>> subscription =
2 RxAmplify.API.subscribe(request);
3
4subscription
5 .observeConnectionState()
6 .subscribe(connectionStateEvent -> Log.i("ApiQuickStart", String.valueOf(connectionStateEvent)));
7
8subscription
9 .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 it
17subscription.cancel();