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