Это действительно зависит от ваших требований и от того, требуется ли вам постоянное соединение или нет.
Если у вас есть чувствительные ко времени данные, которые нужно отправить с сервера на устройство, как только оно станет доступным, лучше всего будет использовать постоянное TCP-соединение.
Если допустимо, чтобы ваш сервер и устройство только периодически обменивались информацией, то опрос или HTTP-запросы могут быть лучшим выбором.
Лично я считаю, что хорошо реализованное долговременное TCP-соединение с двоичным протоколом является лучшим выбором при работе с постоянными соединениями, где информация всегда должна быть актуальной.
HTTP-соединения обычно дороги с точки зрения накладных расходов для каждого пакета, особенно если вы используете протокол на основе XML, такой как SOAP. Кроме того, подключение и демонтаж розеток, как правило, довольно дорого.
С другой стороны, постоянные TCP-соединения могут быть сложны для реализации как на стороне клиента, так и на стороне сервера. Срок службы батареи является огромным фактором на стороне устройства, и если вы ожидаете чего-то большего, чем несколько пользователей, подключенных одновременно, то вам, возможно, придется реализовать асинхронную модель связи на стороне сервера, что создает свои собственные проблемы.
Удачи!