Before you begin
- 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.
- Configure QuickBlox SDK for your app. Check out Setup page for more details.
- Create a user session to be able to use QuickBlox functionality. See Authentication page to learn how to do it.
- Connect to the Chat server. See Connection page to learn how to do it.
Visit Key Concepts page to learn the most important QuickBlox concepts.
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
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
}
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
}];
SwiftObjective-C
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
}
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. |
Responses are generated using AI and may contain mistakes.