Служба обмена сообщениями в реальном времени для мобильных и настольных устройств


Я ищу решение для передачи событий с моего сервера клиентам, которые будут Android, iOS и Desktop(web) пользователями.

Я видел довольно много сообщений на Parse, Amazon SNS и Google Cloud Messaging, но ни в одном из них не упоминаются скорости и наиболее распространенные приложения для них или сравнение с простым потоком TCP или websockets?

Мне нужно иметь до 50 события / секунда bi-directona L пропускная способность на клиента (1kb на событие ) с максимальным 150 мс задержка .

Каковы недостатки использования только TCP-потока событий по сравнению сwebsockets по сравнению сSNS/Parse/GCM ?

3 6

3 ответа:

Push-уведомления (GCM и APNs)

Плюсы: вы можете добраться до устройства, даже если клиентское приложение не запущено.

Минусы: низкая пропускная способность; высокая задержка

Raw TCP

Плюсы: Высокая пропускная способность; низкая задержка; двунаправленный

Минусы: не проходит через типичные прокси и брандмауэры; требуется, чтобы клиентское приложение работало

WebSockets

Плюсы: Высокая пропускная способность; низкая задержка; двунаправленный; проходит через брандмауэры

Минусы: Не все прокси уже поддерживают их; необходимо, чтобы клиентское приложение работало

В дополнениях есть также http Streaming и HTTP Long Polling .

Вы можете попробовать SignalR.

ASP.NET SignalR-это новая библиотека для ASP.NET разработчики, которые делают невероятно простым добавление веб-функциональности в реальном времени в ваши приложения

Один из моих коллег использовал эту библиотеку для web, window, android, mac и т. д. Для обмена сообщениями в режиме реального времени.

Здесь вы можете найти некоторые ориентиры: http://blog.arungupta.me/rest-vs-websocket-comparison-benchmarks/

Этот более технический вопрос может помочь вам или другим тоже: В чем принципиальная разница между WebSockets и чистым TCP?

Цитата из принятого ответа:

Когда вы работаете в пределах интрасети, проще общаться через TCP-сокеты, поскольку вы, вероятно, контролируете компьютеры в этой сети и можете открывать порты. подходит для создания TCP-соединений.

Через интернет вы общаетесь с чьим-то сервером на другом конце. Крайне маловероятно, что у них есть какая-либо старая розетка, открытая для подключения. Обычно они будут иметь только несколько стандартных, таких как порт 80 для HTTP или 443 для HTTPS. Итак, для связи с сервером вы обязаны подключиться, используя один из этих портов.