Автор оригинала: phprus
alekciy
Может быть и существуют. Я не знаю.
Вот и я пока не знаю. Но когда я знаю, что мне нужно можно уже и искать.
Автор оригинала: phprus
А почему обязательно на С++? Есть еще php, perl, python на которых тоже можно написать демона.
Демона написать то можно. Только кто же даст пусть демона на обычном vh? Но уже если брать хост с поддежкой демонов, то почему бы сразу не заюзають скомпилированный демон? Просто мнение о том, что компилируемая программа (С, С++, Java, etc) будет потреблять заведомо меньше резурсов и потом работать эффективнее, чем интерпретируемый (ибо тут ресурсы на просец Apacha+интерпретатор+ресурсы занятые самим скриптом) имеет место быть в массовом создании. Сам я сравнительный анализ компилируемый vs интерпретируемый язык не делал, сравнивать не с чем, однако думается данное общественное мнение базируется на практических данных.
Автор оригинала: phprus
А если у тебя будет рут, то зачем тебе тогда этот тяжеленный апач? Я бы в таком случае ставил nginx, особенно если учесть что у тебя много одновременных запросов.
nginx я сейчас как раз и пробую на тестовой машине.
Автор оригинала: phprus
P.S> А может эффективнее раз в секунду дергать через AJAX скрипт на сервере, который будет отдавать новые сообщения и тогда никаких длительно работающих скриптов не понадобится? Правда из-за большого количества подключений тут все-же будет лучше использовать что-то типа nginx'а.
Это стандартное решение реализованное во многих движках для которых требуется интенсивный обмен данными с сервером. Мне данный подход не нравиться хотя бы потому что он стандартен, да и не подходит он все же. Тут баланс между скорость и качеством. Делает обновления раз в секунду и получаем минимальную задежку, пользователь доволен, сервер нет )) В условиях vh коннекты с клиентов сервер начинает посылать очень быстро.
Делаем пинание сервера реже, раз в 5, в особо клинических случах раз в 10 секунд. Сервер не возмущается, пользователи утрачивают ощущение интерактивности.
Да и сколько онлайновых пользователей вытянет такой движок? 100 пользователей онлайн и сервер пошлет всех решив что это DoS атака.
Да и что тут говорить, ты это сам отлично и без меня понимаешь. Нет, от такого варианта я отказался очень быстро и давно. Был еще вариант фронтед сделать не на аяксе, а на флеш (листал по диагонали спецу по Flex и прыгал от восторга) ибо можено ведь и сокет на клиенте держать, однако теже яица вид с боку. Бэкэндом на сервере все рано должен кто-то висеть демоном.
Да и еще одно соображение. На сколько я знаю открытие каждого нового соединения это бОльшие накладные расходы, чем просто открытие одного соединения, но висящего значительно более долгое время. В плане трафика хотя бы тем, что не пересылается куча служебной информации (HTTP headers конечно весят не десятки мегабайт, однако много маленьких запросов в течении короткого времени с большого числа клиентов и может набежат куча трафа которые совершенно не нужен).
В общем поэтому в данный момент я и пришел к схеме открытия одного достаточно долго соединения. Но как раз вот тут и вылезла другая сторона. Каждый не закрытый коннект это отдельный процесс который весит очень даже нехило в контексте использования Апача. Поэтому следущим шагом был поиск альтернативных решений. Подумалось на FastCGI, но тут я наткнулся на Apache worker. Поэтому и захотелось узнать мнение о нем у тех, кто успел его поюзать в реальных проектах. На сколько стабилен и какие могут быть особености. Поэтому и пришел на форум.