QuickBlox Documentation

QuickBlox provides powerful Chat API and SDK to add real-time messaging and video calls to your web and mobile apps. Learn how to integrate QuickBlox across multiple platforms.

User Presence

Learn how to track user presence updates and check user status using ping.

Before you begin

  1. Register a QuickBlox account. This is a matter of a few minutes and you will be able to use this account to build your apps.
  2. Configure QuickBlox SDK for your app. Check out our Setup page for more details.
  3. Create a user session to be able to use QuickBlox functionality. See our Authentication page to learn how to do it.
  4. Connect to the Chat server. See our Connection page to learn how to do it.

Visit our Key Concepts page to get an overall understanding of the most important QuickBlox concepts.

Subscribe to contact presence updates

You can track the contact presence updates in real-time using the chatDidReceiveContactItemActivity(_ userID:isOnline:status:) method of the QBChatDelegate. However, you can track the presence updates of only those users who have been added to the contact list. See this section to learn how to implement the Contact List.

//MARK: - Life Cycle
override func viewDidLoad() {
    super.viewDidLoad()
    
    QBChat.instance.addDelegate(self)
}

//MARK: QBChatDelegate
func chatDidReceiveContactItemActivity(_ userID: UInt, isOnline: Bool, status: String?) {
    
}
//MARK: - Life Cycle
- (void)viewDidLoad {
    [super viewDidLoad];
    
    [QBChat.instance addDelegate:self];
}

//MARK: QBChatDelegate
- (void)chatDidReceiveContactItemActivity:(NSUInteger)userID isOnline:(BOOL)isOnline status:(NSString *)status {
    
}

Ping user

QuickBlox SDK can send application-level pings to a user. As a result, you can check if the user is connected to the Chat server.

let userId = 221809
let timeout = 20.0
QBChat.instance.pingUser(withID: userId, timeout: timeout) { (timeInterval, success) in
    // time interval of ping and whether it was successful
}
NSUInteger userId = 221809;
NSTimeInterval timeout = 20.0;
[QBChat.instance pingUserWithID:userId timeout:timeout completion:^(NSTimeInterval timeInterval, BOOL success) {
    // time interval of ping and whether it was successful
}];

Argument

Required

Description

userId

yes

ID of the user.

timeout

no

Ping timeout. To control how much time it takes to respond to a ping, you should set a ping timeout. If the response isn't received within the specified time frame, then the error callback is called. Default: 30 seconds.

As a result, a completion block with timeInterval and success arguments is called.

Argument

Description

timeInterval

A double parameter. Indicates how long it took to ping in seconds.

success

A boolean parameter. Indicates whether the ping was successful. If the sucess=1, the ping is successful (the user is connected to the Chat). If sucess=0, the ping isn't successful.

Ping server

QuickBlox SDK can send application-level pings to a server. As a result, you can check if there is a connection with the Chat server.

let timeout = 20.0
QBChat.instance.pingServer(withTimeout: timeout) { (timeInterval, success) in
    // time interval of ping and whether it was successful
}
NSTimeInterval timeout = 20.0;
[QBChat.instance pingServerWithTimeout:timeout completion:^(NSTimeInterval timeInterval, BOOL success) {
    // time interval of ping and whether it was successful
}];

Argument

Required

Description

timeout

no

Ping timeout. To control how much time it takes to respond to a ping, you should set a ping timeout. If the response wasn't received within the specified time frame, then the error callback is called. Default: 30 seconds.

As a result, a completion block with timeInterval and success arguments is called.

Argument

Description

timeInterval

A double parameter. Indicates how long it took to ping in seconds.

success

A boolean parameter. Indicates whether the ping was successful. If the sucess=1, the ping was successful. If sucess=0, the ping wasn't successful.

Updated 5 months ago



User Presence


Learn how to track user presence updates and check user status using ping.

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.