Signal R против Push-уведомлений для приложений реального времени, таких как чат

Я хочу создать чат-приложение для телефонов iOS, Android и Windows, а также в будущем оно должно работать с браузерами. Мои поиски привели меня к использованию Signal R с мобильными службами Azure (AMS).

Мои вопросы:

1) SignalR использует веб-сокеты под капотом. Поддерживается ли веб-сокет в Android, IOS, телефонах Windows и во всех мобильных/настольных браузерах?

2) Если нет, как это повлияет на использование SignalR с AMS?

3) Или я должен просто использовать Push-уведомления, поддерживаемые в AMS?

4) Любой пример приложения/фрагмента кода, которым вы можете поделиться. Обратите внимание, что я буду использовать Xamarin для разработки своего приложения.

5) Любой совет, который вы можете дать для того же.


person Ankur    schedule 02.02.2015    source источник
comment
Ссылка ниже частично отвечает на часть о веб-сокетах и ​​весьма полезна. visualstudiomagazine.com/Articles/2013/11/01/   -  person Ankur    schedule 04.02.2015


Ответы (2)


Мобильные службы Azure имеют интегрированный SignalR, а мобильные службы Azure предоставляют SDK для клиентских приложений, я полагаю, что он предоставляется из коробки.

Видеть

В режиме реального времени с помощью ASP.NET SignalR и Azure Mobile .NET Backend Освоение серверной части управляемых мобильных сервисов Azure — часть четвертая

Включены высококачественные мобильные серверные возможности

Вы найдете множество возможностей, включенных в мобильные службы и легко доступных для вашего веб-API. Мобильные push-уведомления, уведомления в режиме реального времени с SignalR (автоматическое масштабирование), социальная аутентификация для ваших потребительских приложений, автономная синхронизация данных для сценариев с периодическим подключением, и это лишь некоторые из них.

Образцы:

Примечание.

  • Мобильная служба Azure основана на WebAPI!

  • Для этого вы не должны использовать только Push-уведомление, потому что Push-уведомление в iOS не может быть прочитано приложением, если пользователь проигнорирует его, только в Android или Windows вы можете получить и сохранить его. Еще одна проблема, которая может быть проблемой, заключается в том, что если приложение запущено, вы не должны показывать push-уведомление, а должны показывать всплывающее окно с уведомлением... и push-уведомление может иметь задержку от службы push-уведомлений (Apple , GCM, WNS...). Push-уведомление — это уведомление о том, что что-то произошло в приложении, когда пользователь его не использует.

На мой взгляд, вы должны использовать AMS + SignalR для связи в реальном времени, а затем Push-уведомление для обновления пользователя, если он не использует приложение.

person saramgsilva    schedule 02.02.2015
comment
comment
Вместо SignalR можно использовать Pusher, PubNub или другие службы реального времени, которые лучше поддерживают приложения, подобные чату, а также пакеты SDK для Xamarin. - person Ankur; 19.03.2015

Использование SignalR эффективно, чтобы уберечь себя от любого ограничения push-уведомлений, если вы хотите ограничить свои расходы. Но вам нужно либо включать/выключать уведомления в нужное время, когда приложение становится активным или неактивным, иначе приложение может перейти в фоновый режим и push-уведомления не будут отправляться.

Вы можете использовать чистый push-подход, при котором уведомления отображаются, когда приложение неактивно/в фоновом режиме, а когда приложение активно, вы просто перехватываете уведомление в приложении, потребляете его и отменяете, чтобы оно не отображалось. Я написал сообщение в блоге об этом подходе вместе с 3 примерами в Github для iOS, Android и Windows Universal по адресу http://www.ageofmobility.com/2014/10/06/azurechatr-building-a-кросс-платформенноеприложение-чатдляWindows-iOS-Android/.

person ActiveNick    schedule 10.07.2015