Skip to main content

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 channelNumber 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 the CONNECTED state and the RECONNECTING 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.

You can increase the call limit of an API by creating multiple RtmClient instances.
OperationMethodCall limit
Log in the Signalinglogin2 calls per second
Retrieve member count of specified channel(s)getChannelMemberCount1 call per second
Join a different channel each timejoin50 calls every 3 seconds
Join the same channel each timejoin2 calls every 5 seconds
Send messages
  • sendMessageToPeer
  • sendMessageToPeer
  • sendMessage
  • sendMessage
  • 180 calls every three seconds
    Retrieve a member list of the channelgetMembers5 calls every 2 seconds
    Renew the tokenRtmClient.renewToken2 calls per second
    Query the online status of the specified usersqueryPeersOnlineStatus10 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)subscribePeersOnlineStatus10 calls every 5 seconds
    Unsubscribes from the online status of the specified user(s)unsubscribePeersOnlineStatus10 calls every 5 seconds
    Gets a list of the peers, to whose specific status you have subscribed.queryPeersBySubscriptionOption10 calls every 5 seconds

    String size

    Encoding

    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.