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}');
},
));