Limitations
A brief overview of the limitations of the Agora Signaling SDK, including API call limit, string size, encoding, and more.
Channel message limit
The Agora Signaling 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:
- The user cannot send or receive messages.
- The user always stays in the
RECONNECTING
state or keeps switching between theCONNECTED
state and theRECONNECTING
state. For other users, the current user may appear offline.
Channel member limit
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.
Call limit
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 Signaling | 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 | 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 users | queryPeersOnlineStatus | 10 calls every 5 seconds |
Set user attributes | 10 calls every 5 seconds | |
Get user attributes | 40 calls every 5 seconds | |
Set channel attributes | 10 calls every 5 seconds | |
Get channel attributes | 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 |
String size
- The maximum size of a peer-to-peer or channel message is 32 KB. See RtmMessage.setText.
- The maximum size of the content in a call invitation is 8 KB. See LocalInvitation.setContent.
- The maximum size of the response in a call invitation is 8 KB. See RemoteInvitation.setResponse.
Encoding
- Channel and peer-to-peer messages, invitation content, and invitation response must be in UTF-8 format.
- The
filePath
parameter of the following methods must be in UTF-8 format:
Miscellaneous
- Notifications of a member joining or leaving the channel are automatically disabled when the number of channel members exceeds 512.
- The current version supports querying the online status of up to 256 users.
- You can subscribe to the online status of up to 512 users in one method call, and you can subscribe to the online status of up to 512 users.
- Attribute settings in one user attribute operation must not exceed 16 KB in size. Attribute settings in one channel attribute operation must not exceed 32 KB in size. Each attribute (key/value pair) must not exceed 8 KB in size. You must not set over 32 key/value pairs for one attribute operation.
- Each file or image you upload to the Agora server stays for seven days. The corresponding media ID also stays valid for seven days.
- Each file or image to upload must not exceed 30 MB in size.
- Each client instance can only support up to nine upload and download processes at the same time.