Рекомендуется ли использование websocket в сервисе для поддержания постоянного соединения? Какие существуют подводные камни? Как это сказывается на заряде аккумулятора? Как реализовано оповещение о событиях в таких приложениях как ВКонтакте, например? Позволительно ли использовать websocket как альтернативу Google Cloud Message, и в каких случаях?
> Рекомендуется ли использование websocket в сервисе
Почему бы не простой TCP? Или для Android есть удобная либа именно для вебсокетов?
> Как это сказывается на заряде аккумулятора?
Да по физике вроде никак не должно, может и лучше, чем частые или долгие запросы.
Поэкспериментировать кто мешает?
> Как реализовано оповещение о событиях в таких приложениях как ВКонтакте, например?
Декомпилировать кто мешает?
1. Постоянное соединение удобнее всего реализовывать на сокетах.
2. Подводные камни - реконнект и восстановление сесии. Необходимо дополучить данные которые были переданы во время дисконекта.
5. Могу предположить, что GCM работает все же асинхронно, а сокет нужны для постоянного соединения(например для чатов или онлайн игр)
Не стоит разделять эти инструменты, их нужно использовать вместе. На сокетах всё работает пока пользователь находится внутри приложения/экрана чата, на нотификациях когда приложение в бэкграунде