Architect a Video Application
For architecting a video application, you must understand how client endpoint applications interact with the video application server and the EnableX server.
Overview
The video application server and the EnableX server use APIs for communication, which provides a secure way for the two servers to communicate. For instance, when a request for creating a meeting room is sent to the EnableX platform, the platform sends the response of the request to the video application server. This response includes the meeting room details, such as the room ID, room token, and so on.
Key App Building Components
The EnableX platform requires the following components to build a video application.
-
Video application server
-
Client endpoint application
Video Application Server
The video application server is needed for provisioning, workflow automation, and reporting. The video application server performs the following functions:
- Create and manage video rooms.
- Get role-based access token for users looking for joining video sessions. It decides:
- Whom to give access to join the sessions.
- What role the users are assigned. For example, a participant or a moderator role.
- Handle webhook notifications to automate the application workflow.
- Fetch the post session reports and files to access the reports in the future.
Client Endpoint Video Applications
The client endpoint applications must be developed using EnableX SDKs to connect to the video sessions.
As illustrated in the architecture diagram, these client endpoint applications need an Access Token from the EnableX server, through the video application server, to connect to video sessions.
Once connected, the SDK methods perform different actions and listen to event notifications to create and manage the UI/UX of the video sessions.
We provide the following SDKs to develop client endpoint applications:
For Browser-Based Applications
- Web SDK: Web SDK is used for app development in Desktop and Mobile Browsers. All modern browsers support Web RTC Communication. For more information, see Browser Compatibility.
For Native Mobile Applications
- Android SDK: For video application development in Android native environments.
- iOS SDK: For video application development in iOS native environments.
For Hybrid Mobile Applications
- Flutter SDK: For video application development in Flutter frameworks.
- React Native SDK: For video application development in React Native frameworks.
- Cordova SDK: For video application development in Cordova frameworks.
You can also create applications for a different platform to connect to same video session.