On a mobile device (iPhone/Android), what is the impact on battery consumption by implementing WebSockets vs HTTP?
Suppose I'm building an instant messaging app and have two options:
- Rely on Push Notifications to notify the device of a new message, and then fetch that message via a REST API.
- Establish a WebSocket connection when the user launches the app, and maintain that connection while the app is active. The server forwards all messages directly to the device, rather than using Push Notifications.
Someone told me that maintaining a persistent WebSocket connection would be a huge battery hog because it requires the antenna to be constantly active, rather than powering down after each request - but is that really true?
This answer suggests that on iOS, each device maintains a persistent connection with the Push Notification service at all times (similar to WebSockets, I suppose), so doesn't that suggest that the device's antenna is running 24/7 anyway?
The extra overhead of HTTP requests would be pretty insignificant for an instant messaging app, but in an application where a large number of items need to be downloaded constantly, a persistent WebSocket connection would be very useful. Any insight about maintaining long-term WebSocket connections on mobile devices (especially concerning battery consumption) would be extremely helpful!