This page provides a brief overview of the limitations of the Agora RTM SDK for Android, including API call limit, string size, encoding, and more.
The Agora RTM SDK does not have a limit on the number of concurrent online users. However, Agora has the following recommendations on the maximum number of channel messages per second for a single channel:
Concurrent online users in a single channel | Number of channel messages per second |
---|---|
< 1,000 | < 200 |
≥ 1,000 and < 10,000 | < 100 |
≥ 10,000 | < 30 |
If the number of messages per second exceeds the recommended values, latency can increase significantly and may also cause the following issues:
RECONNECTING
state or keeps switching between the CONNECTED
state and the RECONNECTING
state. For other users, the current user may appear offline.Agora provides customized service to increase the number of messages per second without affecting latency or stability. Please contact support@agora.io for more information.
The call limit is for one RtmClient
instance. If an operation corresponds to multiple methods, the number of the method calls of an operation equals the sum of the method calls of all corresponding methods in a specific time frame.
RtmClient
instances.Operation | Method | Call limit |
---|---|---|
Log in the RTM system | login |
2 calls per second |
Retrieve member count of specified channel(s) | getChannelMemberCount |
1 call per second |
Join a different channel each time | join |
50 calls every 3 seconds |
Join the same channel each time | join |
2 calls every 5 seconds |
Send messages | sendMessageToPeer sendMessageToPeer sendMessage sendMessage |
180 calls every three seconds |
Retrieve a member list of the channel | getMembers |
5 calls every 2 seconds |
Renew the token | RtmClient.renewToken |
2 calls per second |
Query the online status of the specified user(s) | queryPeersOnlineStatus |
10 calls every 5 seconds |
Set user attributes | setLocalUserAttributes addOrUpdateLocalUserAttributes deleteLocalUserAttributesByKeys clearLocalUserAttributes |
10 calls every 5 seconds |
Get user attributes | getUserAttributes getUserAttributesByKeys |
40 calls every 5 seconds |
Set channel attributes | setChannelAttributes addOrUpdateChannelAttributes deleteChannelAttributesByKeys clearChannelAttributes |
10 calls every 5 seconds |
Get channel attributes | getChannelAttributes getChannelAttributesByKeys |
10 calls every 5 seconds |
Subscribes to the online status of the specified user(s) | subscribePeersOnlineStatus |
10 calls every 5 seconds |
Unsubscribes from the online status of the specified user(s) | unsubscribePeersOnlineStatus |
10 calls every 5 seconds |
Gets a list of the peers, to whose specific status you have subscribed. | queryPeersBySubscriptionOption |
10 calls every 5 seconds |
Subscribes to the online status of the specified user(s) | subscribePeersOnlineStatus |
10 calls every 5 seconds |
Unsubscribes from the online status of the specified user(s) | unsubscribePeersOnlineStatus |
10 calls every 5 seconds |
Gets a list of the peers, to whose specific status you have subscribed. | queryPeersBySubscriptionOption |
10 calls every 5 seconds |
RtmMessage.setText
.LocalInvitation.setContent
.RemoteInvitation.setResponse
.filePath
parameter of the following methods must be in UTF-8 format: