Задать вопрос

Какая технология лучше для comet-сервера: tcp sockets, websockets или long polling?

Делаем игру для контакта. Нужна двухсторонняя связь сервера-клиента для передачи данных только от сервера к клиенту из бд(по определенным событиям) и туда-обратно для чата. Никак не могу разобраться, что будет лучше. Планируется высоконагруженное приложение (backend на php, frontend на flash). Варианты реализовывать на node.js либо на php. В websocket несколько смущает поддержка только в новых версиях браузеров. Полагаю, что tcp sockets будут выигрывать у websockets? В tcp sockets есть поддержка всех браузеров, и меньше данных передается при запросе/ответе(на сколько я знаю). Может быть есть еще какие плюсы или минусы.
  • Вопрос задан
  • 7350 просмотров
Подписаться 5 Оценить Комментировать
Решения вопроса 1
@sprosvirnin Автор вопроса
Решили сделать comet-сервер на node.js на основе tcp-sockets.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Tyranron
@Tyranron
Если клиент на flash, то не вижу проблем использовать стандартные tcp sockets, это ведь не js в браузере и никто не запрещает.
Сервер, как на меня, лучше сделать на node.js, чем на php, так как у последнего изначально иная природа (хоть и есть всякие php-daemon). Если будут какие-то тяжелые вычисления на сервере, то с node.js можно их пробрасывать на тот же php, дабы не грузить node.js (она однопоточная, не забываем об этом).
В качестве альтернативы также могу посоветовать использовать Go. Сервер на нём пишется не медленнее, чем на node.js, он может работать не только в одном потоке, потому тяжелые вычисления, в принципе, можно и не выносить за пределы. Компилируется. А также гораздо богаче инструмент для асинхронных взаимодействий прямо на уровне языка, а не библиотек.
Ответ написан
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Веб-сеоктеы уже давно стандартизированы и есть, если и не во всех, то в популярных браузерах точно. И они куда удобнее всяких кометов и лонг-поллингов. Существенный плюс веб-сокетов: нет никаких лишних данных при передаче сообщения типа http-заголовоков и т.п., соответственно не тратится время и ресурсы на их обработку. В общем, удобная очень штука =)
Ответ написан
На работе изначально использовали обычные сокеты, т.к. было только ios-приложение, потом появилась вебверсия и перешли на вебсокеты.
Покрытие вебсокетов составляет около 96% - habrahabr.ru/company/ifree/blog/211504
Можно смело их использовать.
Из плюсов вебсокетов над обычными сокетами (кроме поддержки браузером) - можно проксировать через nginx, что позволяет использовать один порт несколькими вебсокет-серверами, а также с помощью nginx можно ограничивать количество соединений с одного ip и прочие плюшки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы