Skip to main content

Subscribe to online status

Subscribe to online status

Use NCEngine.user.subscribeEvent() to track specific users' online status.

  • Subscribe up to 200 users per call, 1000 total subscriptions.
  • Subscription duration: 60–2592000 seconds.
  • Type: SubscribeType.onlineStatus.
Dart
final params = SubscribeEventParams(
subscribeType: SubscribeType.onlineStatus,
expiry: 180000,
userIds: ['user1', 'user2', 'user3'],
);
await NCEngine.user.subscribeEvent(params, (failedUserIds, error) {
if (error == null) print('Subscribed to online status');
});

Unsubscribe

Dart
final params = UnsubscribeEventParams(
subscribeType: SubscribeType.onlineStatus,
userIds: ['user1', 'user2', 'user3'],
);
await NCEngine.user.unsubscribeEvent(params, (failedUserIds, error) {
if (error == null) print('Unsubscribed');
});

Query subscription status

Query up to 200 users' status per call.

Dart
final query = NCEngine.user.createSubscribeQuery(
SubscribeQueryParams(subscribeType: SubscribeType.onlineStatus),
);
await query.loadNextPage((events, error) {
if (error == null) print('Subscribe events: ${events?.data}');
});

Listen for status changes

Register a UserHandler before connecting. Use SubscribeType to distinguish event types.

Dart
NCEngine.addUserHandler('online-status-handler', UserHandler(
onSubscriptionChanged: (event) {
print('Online status changes: ${event.statusInfos}');
},
onSubscriptionSyncCompleted: (event) {
print('Sync completed for type: ${event.type}');
},
onSubscriptionChangedOnOtherDevices: (event) {
print('Other device subscription changes: ${event.subscribeEvents}');
},
));