WebRTC Client Wake-Up via Gateway and Push Notifications
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
WebRTC applications face resource utilization issues due to continuous communications sessions, which consume battery and data on user equipment and network resources, making it inefficient for devices with limited resources like mobile phones.
Innovation Solution
Implementing a client wake-up system that allows WebRTC applications to close WebSocket connections with gateways, enter a sleeping mode, and use push notification servers to wake up the applications when incoming messages are received, ensuring resource conservation while maintaining the ability to receive messages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a WebRTC application maintains a continuous communications session to receive incoming calls, then the device can receive messages in real-time, but resources such as battery and network ports are continuously consumed
Solution Approach 1:
The system dynamically transitions the WebRTC application between active and sleeping states based on incoming message events. When no messages are present, the application enters sleeping mode to conserve battery. When a message arrives, the system wakes up the application, re-establishes the WebSocket connection, and delivers the message, thus adapting the system state to actual needs rather than maintaining a static continuous connection
Solution Approach 2:
The gateway acts as an intermediary between the external network and the sleeping WebRTC application. It maintains the ability to receive messages while the application sleeps, stores incoming messages, and manages the wake-up process by re-establishing connections and forwarding messages, thereby decoupling the need for continuous application activity from message reception capability
2Reliability
If a WebRTC application maintains a continuous communications session, then incoming calls can be received immediately, but network ports and server resources are continuously utilized
Solution Approach 1:
The system dynamically manages network port allocation by closing WebSocket connections when applications are sleeping and re-opening them when messages arrive. This allows network ports to be released and reused for other purposes during idle periods, while still maintaining call reception capability when needed
Solution Approach 2:
The gateway serves as an intermediary that maintains message reception capability without requiring the application to hold network ports open. It can accept and buffer incoming messages, then re-establish connections and forward messages to waking applications, thereby decoupling message reception from continuous port utilization
3Loss of energy
If a WebRTC application enters sleeping mode to conserve resources, then battery and network resources are saved, but the device cannot receive incoming messages in real-time
Solution Approach 1:
The system performs preliminary actions by maintaining the gateway's ability to receive and buffer messages while the application sleeps. When a message arrives, the gateway already has it ready, and the wake-up process is pre-configured through push notification mechanisms, minimizing the actual delay between message arrival and application receipt
Solution Approach 2:
The system uses push notification feedback mechanisms where the gateway monitors for incoming messages and automatically triggers wake-up events. This feedback loop ensures that sleeping applications are woken up promptly when messages arrive, balancing energy conservation with timely message delivery
Data Source
AI summary
A system performs client wake up for real-time communications (“RTC”). The system closes a connection between a gateway and an RTC application of a device. The RTC application enters a sleeping mode when the connection to the gateway is closed. After closing the connection, the system receives a message intended for the RTC application. The system requests a push notification server to wake up the RTC application, reconnects the gateway with the RTC application, and delivers the message to the RTC application.


