Служба обмена сообщениями в реальном времени для мобильных и настольных устройств
Я ищу решение для передачи событий с моего сервера клиентам, которые будут Android, iOS и Desktop(web) пользователями.
Я видел довольно много сообщений на Parse, Amazon SNS и Google Cloud Messaging, но ни в одном из них не упоминаются скорости и наиболее распространенные приложения для них или сравнение с простым потоком TCP или websockets?
Мне нужно иметь до 50 события / секунда bi-directona L пропускная способность на клиента (1kb на событие ) с максимальным 150 мс задержка .
Каковы недостатки использования только TCP-потока событий по сравнению сwebsockets по сравнению сSNS/Parse/GCM ?
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. Итак, для связи с сервером вы обязаны подключиться, используя один из этих портов.