LINUX.ORG.RU

WebSocket vs. AJAX

 , , , ,


0

1

Я немного не понял назначения WebSocket. Имеет ли он те же функции, что комет? Имеет ли он те же функции, что AJAX? Имеет ли он то же назначение?
Правильно ли я понял, что современные браузеры поддерживают WebSocket нативно, а старые просто съедают один js-файл и вдруг начинают всё поддерживать?
Очень хочется отказаться от AJAX, ибо он устанавливает кучу лишних соединений. Что посоветуете?
Очень хочу примеров использования WebSocket как замены AJAX. Спасибо.

★★★★★

Ответ на: комментарий от border-radius

да чего ты мне рассказываешь что я и так знаю, речь о том как передать window в window которые были созданы независимо друг от друга

wwwsevolod
()

Я немного не понял назначения WebSocket

Ты всё правильно понял. Они не нужны.

Очень хочется отказаться от AJAX, ибо он устанавливает кучу лишних соединений. Что посоветуете?

Посоветую отлюбиться от браузера и http-протокола, написав своё приложение с QT и удалённым сервером.

r_asian ★☆☆
()
Ответ на: комментарий от Vit

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

blan4
()
Ответ на: комментарий от r_asian

Разин такой Разин

отлюбиться от браузера

Шаг назад, не? Я понимаю, что сейчас встраиваемые и карманные системы маломощны, но со временем они будут захвачены и порабощены всякими браузерами. Так что я смотрю в завтра.

и http-протокола

А вот он тут совсем ни при чём.

приложение с QT

Фу-фу-фу. Это же сколько всякого лишнего гумна в систему тащить.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от blan4

Почитайте документацию по Faye / Socket.io . Там есть механизмы для аутентификации.

Vit ★★★★★
()
Ответ на: Разин такой Разин от CYB3R

Шаг назад, не?

Да. Весь этот Websockets - это один большой шаг назад.

Я понимаю, что сейчас встраиваемые и карманные системы маломощны, но со временем они будут захвачены и порабощены всякими браузерами

«Мобильные приложения? Не не слышал.» Я вот, например на мобильных платформах больше наблюдаю увеличивающийся перекос от браузеров к другим реализациям клиентов всяких приложений.

А вот он тут совсем ни при чём.

Он тут в центре обсуждения, так как изначально задумывался таким: клиент инициирует соединение, отправляет запрос, получает ответ. А WebSockets - чисто костыль, которым пытаются подпереть то, чего не хватает в http.

Фу-фу-фу. Это же сколько всякого лишнего гумна в систему тащить.

Зато гибко, нативно и без тормозов.

r_asian ★☆☆
()
Ответ на: комментарий от r_asian

А WebSockets - чисто костыль, которым пытаются подпереть то, чего не хватает в http.

Выглядит это так: брали паркетник для того, чтобы от работы до дому ездить, а потом решили, что надо бы ещё и на дачу песочка привезти пару-тройку тонн ... и приварили к крыше кузов, забыв про подвеску и двигатель. Запихали кое-как более мощный двигатель, оторвав крышку копота(не влазил) и поставили рессоры от трактора Беларусь. Посчитали - оказалось дешевле и качественнее было сразу грузовичок купить.

r_asian ★☆☆
()
Ответ на: комментарий от r_asian

осчитали - оказалось дешевле и качественнее было сразу грузовичок купить.

Да и вышел какой-то уродец, над которым все ржуд.

r_asian ★☆☆
()
Ответ на: комментарий от CYB3R

sockjs socket.io тред не читал, в комете тоже нужно держать очередь чтоб не было лишних соединений, или это поллинг называется, сокет рулят но с честной поддержкой пока проблемы

trashymichael ★★★
()
Ответ на: комментарий от Eddy_Em

Все элементарно: это обычный сокет, т.е. мы имеем реальную асинхронную связь. А XHR такого не умеет.

Я бы сказал, что XHR - это как раз асинхронный режим работы: послали запрос, работаем дальше, а ответ обрабатывается в колбэк-функции, указанной при отправке запроса. Но однонаправленный: сервер может только ответить на вызов, пусть и с продолжительной задержкой (благодаря чему и достигается псевдодвунаправленность, посылая запрос «дай статус, когда/если он изменится»). А вот сокет - это реально двунаправленный режим (поверх эзернета ещё и дуплексный).

gag ★★★★★
()
Ответ на: комментарий от r_asian

Они не нужны.

Ретрограды-вебофобы не нужны.

приложение с QT

Покажи невырвиглазные приложения на Qt, желательно на чистом С или питоне. С т.з. дизайна любые десктопные тулкиты sosnooley перед HTML5/CSS3 и годятся лишь как запускалки вебкита/геко в недекорированном окне или на полный экран.

и удалённым сервером.

Какая разница, сервер какого протокола это будет? В ws по http идёт только хендшейк, между прочим.

border-radius
()
Ответ на: комментарий от r_asian

Посоветую отлюбиться от браузера и http-протокола, написав своё приложение с QT и удалённым сервером.

Фу, как пóшло!

Eddy_Em ☆☆☆☆☆
()

Вебсокеты решат проблему связи не только вперед, но и назад, с сервера. А Ajax это делает путем ужасных костылей на подобии Comet.

Это все теория, а на практике, костыли на Comet - единственное что работает. Вебсокеты можешь взять на лопату, закрыть нос и выкинуть в ведро

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)

отказаться от AJAX, ибо он устанавливает кучу лишних соединений

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

Komintern ★★★★★
()
Последнее исправление: Komintern (всего исправлений: 1)
Ответ на: Разин такой Разин от CYB3R

Я понимаю, что сейчас встраиваемые и карманные системы маломощны, но со временем они будут захвачены и порабощены всякими браузерами. Так что я смотрю в завтра.

Для этого браузерам придется обзавестись большим количеством новых возможностей и сильно сменить основные концепции, став фактически ОС. Ты смотришь в какое-то другое, альтернативное завтра.

note173 ★★★★★
()

Внедряли WebSocket ещё с момента появления черновика 76. Написал сервачёк на Qt, работает уже больше года, всё отлично, все довольны.

В браузере писалось всё на голом JS, из библиотек — только JQuery.

Chaser_Andrey ★★★★★
()

Flash, silverlight (мб java) могут эмитировать websocketы. Вопрос несколько некорректный, т.к. я не вижу где они конкурируют.

Ajax предназначается для, по-большей части, статичного контента, такого, который можно прокешировать, раздать через баллансировщик типа nginx, apache, который затем прокеширует браузер и сделает работу юзера более приятной (текст статей, пречень статей, карта сайта и т.д.) Ajax упрощает серверную архитектуру: не нужны сложные шаблоны, достаточно небольших фрагментов, или вообще json (клиент сам разберется что с ним делать).

Websocket предназначен для абсолютно динамического контента, который генерируется прямо сейчас и будет не нужен уже через 5 минут больше никогда (оповещения, координаты объектов). Websocket усложняет серверную архитектуру: он встанет рядом, он обязательно будет работать на калбэках.

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

special-k ★★★★
()
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: комментарий от Chaser_Andrey

Ну.. забавно, qt - гуи тулкит, а сервер - это нечто априори лишенное гуи, то, что будет работать там, где для гуи нет почти ничего.

special-k ★★★★
()
Ответ на: комментарий от special-k

qt - гуи тулкит

Вызывающе неверная информация. Qt - это framework. Я не использую GUI на сервере.

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от special-k

Да, Mozilla пытаются сделать примерно это в плане сервисных функций, но я больше про интерфейс.

Кстати, меня очень сильно удивляет упорство Mozilla, с которым они держатся за html, css и js.

note173 ★★★★★
()
Ответ на: комментарий от special-k

За NaCl.

Интерфейс — на веб-технологиях сейчас невозможно повторить поведение ни одной из ведущих мобильных платформ.

note173 ★★★★★
()
Ответ на: комментарий от special-k

Нет, я тоже споткнулся об эту фразу ибо знаю «qt — это такой жирный тулкит». Оказалось, что это действительно универсальный фреймворк (но всё равно жирный).

CYB3R ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.