The messaging functionality of Amity Chat SDK is simple, there are 2 main concepts you need to know: messages and channels. A channel represents a chat between a group of users. A channel supports up to 300,000 members and can contain an unlimited number of messages. Any message exchanged in the channels will be pushed to all other members of the channel in real-time.
Amity's Chat SDK is designed to handle all states related to messaging, including network connection states. Ideally, you should be able to map the state exposed by the Chat SDK directly to your application UI. You would only need to send the right actions to the SDK, and any update to the state will be emitted to you via LiveObject updates.
All methods in our Chat SDK are designed to return synchronously, and will automatically establish a connection to the server when needed and send the request to the server. If the server is not available, our Chat SDK will queue up any requests and will automatically try to connect to the server with exponential backoff.
In order to provide the best user experience, the Chat SDK will automatically persist its state to the user device's disk. All queries that return a LiveObject will use a cache/network strategy in order to ensure that relevant data is always presented to the user.
All queries in the Chat SDK synchronously return LiveObjects. LiveObject represents a query that is always updated in real-time, informing you whenever the data in the query changes. It encapsulates all logic around using local cache, querying from the network, and receiving live events from the network into one simple interface.
Amity Social Cloud's SDKs are designed to support all devices and operating systems released at least 2 years back. The current supported minimum OS versions are:
iOS: iOS 12+
Android: Android 4.1+ (API level 16)
Internet Explorer: 11+
Since Amity SDK (Web) uses local cache for performance and user experience reason, server side rendering is not supported. To use Amity Web SDK with NextJS, the Web SDK must be imported using Dynamic Import with SSR disabled.