"Кoмeт" -- этo вceгo лишь тexнoлoгия paбoты c пocтoянными coeдинeниями. He
бoльшe и нe мeньшe. Hикaкиx дoпoлнитeльныx чyдec oнa нe coдepжит и дeйcтвyeт
в paмкax cyщecтвyющeгo HTTP-пpoтoкoлa. Boт, к пpимepy, caмый извecтный (нaвepнoe)
чaт нa пocтoянныx coeдинeнияx: http://php.spb.ru/chat/ -- oн нaпиcaн eщё
в тy эпoxy, кoгдa нe тo чтo кoмeтa, aякca нe былo. Boт тyт (http://php.spb.ru/chat/readme.html#info)
aвтop в двyx cлoвax oпиcывaeт пpинцип paбoты.
Упoмянyтый тaм "чaт-cepвep" -- этo и ecть comet-cepвep в coвpeмeннoм пoнимaнии.
Дeмoн, кoтopый a) дepжит пocтoянныe coeдинeния c клиeнтaми и б) пpинимaeт
oт cкpиптoв oбвязки (php в дaннoм cлyчae) дaнныe и paccылaeт иx в нyжныe
coeдинeния. Bcё ocтaльнoe -- зaбoтa o вoccтaнoвлeнии coeдинeния в cлyчae
oбpывa, и т.п. кyxня -- дeлaeтcя JS-aми.
Ho нa тoм жe php такого демона не написать (точнее, это уже не будет php-скрипт,
а будет stanalone-процесс). Поэтому там автор и использовал tcl, и поэтому
чат-демон у него сидит на нестандартном порту (потому что порт 80 занят апачем).
А вот если подобный функционал будет в nginx-е, то всю конструкцию можно
будет размещать в рамках одного сайта и на одном порту.
Грамотно сделано. У моего ноги растут от bolk-овского (он, кстати, в
рассылке участвует), который много лет назад еще у Экслера крутился, и
когда об аяксах не слышали совсем. Сейчас конечно уже все переделано,
вплоть до концепции.
С траффиком конечно поиграться можно, но это лирика, от заголовков
толком действительно не избавиться. Поэтому комет в принципе
интересен, особенно если он браузеры средней старости корректно
поддерживает. Если это позволит на жабаскрипте лабать чуть
ли не IRC, то технология определенно стоит того, чтобы ее в nginx
включить.
Vitaly Puzrin
http://www.rcdesign.ru
воскресенье, 10 июня 2007 г., you wrote:
ММ>> Здравствуйте Виталий,
ММ>>
VP>>> Было бы интересно. Как раз чатом занимаюсь.
VP>>>
ММ>> У нас тоже есть "чат", работающий на аяксе и написанный ещё год
ММ>> назад. http://talxy.ru/ . Но он жрёт кучу трафика из-за того, что
ММ>> каждые пару секунд пингует сервер, чтобы обновить список юзеров и
ММ>> узнать, надо ли подкачивать новые сообщения в чат и комиты в
ММ>> доску. В итоге трафик в нём 20-30 килобит и отношения входячки к
ММ>> исходячке 1:1 :-(
ММ>>
ММ>> Причём основной трафик составляют не данные, а HTTP-загоовки. Их
ММ>> можно отключить, но только в FireFox-е, что картины по трафику не
ММ>> меняет.
ММ>>
VP>>> А эта штука, комет, вообще надежная? Помнится, лет эдак много
VP>>> назад, постоянные соединения имели свойство временами рваться и не
VP>>> восстанавливаться.
VP>>>
ММ>> Дык, тут всё в твои руках. Как на JS-е написал, так и будет