Существует два популярных варианта реализации обновлений в реальном времени: сокеты и RTMP.У каждого есть свои преимущества и недостатки, но основным решающим фактором обычно является инфраструктура вашего сервера.
Сокеты
Сокеты обеспечивают функциональность самого низкого уровня.Это означает, что вам нужно будет реализовать протокол в коде на клиенте и на сервере.Однако самое большое преимущество этого подхода состоит в том, что он может работать для любой серверной технологии, поддерживающей сокеты TCP / IP.Вы можете отправлять данные в любом формате, который вам нравится, но наиболее эффективным будет использовать Формат сообщения ActionScript (AMF) для передачи данных в двоичном формате.
RTMP
Real-Time Media Protocol - это протокол, разработанный Adobe и изначально реализованный Flash Player.Использование RTMP потребует определенного сервера, который может поддерживать протокол.Существуют как собственные решения, так и бесплатные.Преимущество использования RTMP заключается в том, что большая часть протокола уже реализована, и обмен данными может быть таким же простым, как установка значения общего объекта - с протоколом, обрабатывающим передачу данных за кулисами.RTMP кодирует сообщения с использованием AMF, поэтому использование полосы пропускания эффективно.Протокол также поддерживает «туннелирование» по HTTP, что означает, что он прибегает к опросу по HTTP, когда соединение RTMP невозможно.
Вот некоторые серверные решения для реализации RTMP и / или AMF:
- FluorineFX (.Net)
- WebORB (.Net, Java, PHP)
- Red5 (Java)
- Adobe Flash Media Server (Java)
Эта запись в Википедии описывает протокол RTMP и доступные серверы более подробно.