metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-12-24 09:22 pm

WebSockets - почто стояли на майдане?

ссылка

Вкратце - технология, по которой коннект с веб-браузера на сервер будет висеть пока не сдохнет, а сервер при желании сможет в этот коннект срать данными, которые браузер будет обрабатывать.
Выглядит, конечно, весьма привлекательно для неадекватов любителей делать интерактивщину на вебе.

Только вот представьте себе, что счас вся серверная и прочая инфраструктура заточена под, условно говоря, "короткий запрос-короткий ответ". Я уже несколько раз сталкивался с кривонастроенными сетями у клиентов, где долговисящие запросы просто обрывались где-то в середине сети. При этом обычные всякие почты, вебы и говноторенты в таких условиях работают более менее нормально. А вот если запросу в целях работы нужно висеть установленному - жопа и смерть, 5-10 минут неактивности и гамон.

Там по ссылке где нибудь упоминается обработка ошибок? Или keep-alive пакеты на уровне протокола? Ах, да, я забыл, в гугле не бывает зависающего сетевого оборудования, сдохших свитчей и неправильно настроенных прокси, натов и файрволлов, поэтому обработкой ошибок никто не заморачивается. "У нас на столе все работает".

Надеюсь, гугол это протолкнет в мейнстрим и начнется еще лет десять ебосрани для всех ИТшников, сисадминов, к которым будет приходит руководство и требовать чтобы "у меня веб-приложение должно работать" и веб-разработчиков, которым придется выламывать себе мозг, делая нормальную обработку ошибок с помощью костылей и хаков.

[identity profile] yurri.livejournal.com 2009-12-24 09:40 pm (UTC)(link)
0x00, <строка в кодировке UTF-8>, 0xFF

Какой ужас и 1970-ый год.

[identity profile] blacklion.livejournal.com 2009-12-24 09:56 pm (UTC)(link)
Обработка ошибок — это onclose() Что-то посдказывает мне что у объекта при этом поменяется какой-нибудь .status и можно будет узнать причину.

[identity profile] dizel-by.livejournal.com 2009-12-24 10:00 pm (UTC)(link)
Угу, вот и я о том же писал: http://lionet.livejournal.com/44098.html?thread=888130#t888130
Был практически послан нах

[identity profile] blacklion.livejournal.com 2009-12-24 10:02 pm (UTC)(link)
Вот чего эта радость не учитывает — так это того, что современные серверы плохо приспособелны (кроме, пожалуй, энджиникса) к мультепликсированию такого количества сокетов, как породит эта технология.

[identity profile] blacklion.livejournal.com 2009-12-24 10:02 pm (UTC)(link)
т.е. это такой гвоздь в гроб ещё и апача, как минимум.

[identity profile] max-posedon.livejournal.com 2009-12-24 10:44 pm (UTC)(link)
Главная беда: раньше http был stateless, теперь statefull, со всеми вытекающими.

[identity profile] w00dy.livejournal.com 2009-12-24 11:12 pm (UTC)(link)
хехе, спасёт человечество как всегда Microsoft - она это говно в IE реализовывать не будет ;)

[identity profile] j-sheridan.livejournal.com 2009-12-24 11:18 pm (UTC)(link)
Я давно уже говорил что http не предназначен для приложений. Он разрабатывался совершенно не для этого. но надо мной все только смеются и лепят монстров типа "отсылаю запрос на дополнительный сервис, сервис цепляется к БД, делает выборку и возвращает мне эту выборку в xml", прикрываясь отговорками о какойто там повышенной безопасности этой связки. На rsdn.ru такое было в компутерных священных войнах. Лень ссылку искать...

[identity profile] lionet.livejournal.com 2009-12-24 11:27 pm (UTC)(link)
И ещё пошлю. Потому что такая у нас современная веб-инженерия — попытка среди кучи граблей отобрать себе модель под себя. В вебе всё так через жопу, никто даже не начинает ныть. И COMET вообще, и WebSockets — они ничего в эту кашу плохого не добавляют: она изначально такая, что нужно program defensively.

[identity profile] lionet.livejournal.com 2009-12-24 11:28 pm (UTC)(link)
Эрланг зато всплывёт. Facebook Chat, который COMET — как раз на нём.

[identity profile] dizel-by.livejournal.com 2009-12-24 11:32 pm (UTC)(link)
Так я и не говорю, что технологии плохие. Я говорю лишь, что должно случиться много совпадений, чтобы всё работало так, как нужно.

[identity profile] lionet.livejournal.com 2009-12-24 11:37 pm (UTC)(link)
На практике есть работающие связки, и не сказать чтобы совсем сложные. Иначе бы рационального смысла не было ни фейсбуку, ни гуглу, ни даже нам делать какой-то двусторонний ajax.

[identity profile] dizel-by.livejournal.com 2009-12-24 11:45 pm (UTC)(link)
Фейсбук и гугл - это как раз и есть два вида говна, которые работают только в тепличных условиях. А, ещё вконтакт есть, но там вообще ужас, что творится - эвтаназия не поможет.

[identity profile] veter-r-r.livejournal.com 2009-12-24 11:57 pm (UTC)(link)
Как-то мало промежуточных сервисов :)
wizzard: (Default)

[personal profile] wizzard 2009-12-25 12:46 am (UTC)(link)
микрософт зачем-то продвигает лонг поллинг в связке silverlight+iis, мне очень интересно как оно масштабируется (работает - да, скейлится ли - не пробовал)

но рекомендует юзать отдельные сокеты, факт)
wizzard: (Default)

[personal profile] wizzard 2009-12-25 12:47 am (UTC)(link)
ага, а еще в гроб хттп проксей (что хорошо)

в общем-то чаты и вейвы и без того на лонг поллинге работают, так что хуже уже не будет.

хотя у флэша отродясь был RTSP, но это очень специфическая хренотень, и неудобная маленько.

[identity profile] metaclass.livejournal.com 2009-12-25 12:54 am (UTC)(link)
Да, тут вообще ВСЕ не рассчитано на постоянно висящие соединения. Полезут такие черви, что веб-разработчики рыдать будут. И это хорошо, а то они со своими stateless короткоживущими запросами малость разленились :)

[identity profile] metaclass.livejournal.com 2009-12-25 12:56 am (UTC)(link)
Ну блин, ну веб-хтмл-хттп был документами, ну оставался бы ими. А то все накручивают и накручивают. Постоянный коннект - это финиш, можно даже протокол переименовывать, от хттп там только название осталось :)

[identity profile] metaclass.livejournal.com 2009-12-25 01:07 am (UTC)(link)
Ай, в сложных приложениях там жеж все равно состояния были. Просто что их в сессиях/состояниях юзера приходилось держать. И сейчас то же самое будет, и наверно еще хуже, потому что поверх сессии коннекта еще будет сессия приложения, и все это как-то надо будет взаимодействовать разработчику.

[identity profile] zhacka (from livejournal.com) 2009-12-25 06:13 am (UTC)(link)
От того, что будут разрабатывать приложения поверх HTTP мы уже никуда не денемся. По этому лучше уж WebSocket, нежели те костыли, с помощью которых реализовуют ту же функциональность сейчас. Или я где-то не прав?

И таки да, я уже давно думаю/говорю, что HTTP(ну, вместе с тем, как он используется) утратил свою роль и превратился в монстра.

[identity profile] b00ter.livejournal.com 2009-12-25 07:22 am (UTC)(link)
Почему?

[identity profile] vp.livejournal.com 2009-12-25 07:24 am (UTC)(link)
Тут самая печаль - это то, что народ не осознает, что это должен быть ДРУГОЙ протокол. Не HTTP. А какой-нибудь там JJJ14, который будет работать по 79 порту, и все. КАК можно надеяться на совместимость совершенно с идеологически чуждым поведением запросов, что это все сможет раюботать на старом транспорте???? Народ воистину мозгом тронулся и не понимает что творит. Тут надо все проектировать с нуля, вообще.

Эта музыка будет вечной...

[identity profile] a-sure.livejournal.com 2009-12-25 08:12 am (UTC)(link)
Кто-то когда пернул, что для всех нужд хватит HTTP, что вместо туевой хучи портов\протоколов говноадминам придется настраивать только один. И понеслось говно по трубам:
- XML, ой, надо бы валидатор на входе
- ой, несекурно - SSL,
- ой - теперь хрен проверишь, валиадатор научим подглядывать
... ad libitum

Ну, а про построение stateful приложений на stateless HTTP даже вспоминать неохота.

Это очень проверенный подход - гнать новую модную волну, лучше несколько. "Дядя Вова Бутенко" из Communigate про это фиг знает когда написал: "бабки делаются на волне".

[identity profile] blacklion.livejournal.com 2009-12-25 08:25 am (UTC)(link)
И это хорошо, а то они со своими stateless короткоживущими запросами малость разленились :)
На мой вкус, надо максимально упрощать, делать bullet proof. А тут — разработчикам приложений, конечно, упростили. А вот разработчикам плафтормы, вплоть до ядра OS, раутеров и так далее… Ууууу…

И, да, передача строк в таком формате…

[identity profile] metaclass.livejournal.com 2009-12-25 08:38 am (UTC)(link)
Формат идеально вырвет мозг всем функциям, где EOF (-1) приводится к одному байту и где 0 используется как маркер конца строки.

Page 1 of 3