Ура свершилось! Можно отправить в trash что то типа ajax reverse, ajax push, comet и тому подобное.
W3 консорциум выделил отдельный стандарт из HTML 5 это Web Sockets. Разработчики ПО оперативно отреагировали на стандарт, так как это действительно прорыв в развитии Web.
Браузеры которые поддерживают стандарт:
Apple Safari
В FireFox 4 запланировали поддержку стандарта
Opera начиная с релиза 10.70
В Microsoft не все так гладко, поддержку стандарта обещают в Internet Explorer 9.
Поддержка в серверных приложениях:
- В Apache модуль pywebsocket от Google
- В PHP расширение phpwebsocket
- J2EE контейнеры:
- Jetty 7.0
- GlassFish 3.0
- Caucho Resin 4.0.2
Собственно говоря, а в чем дело, ну стандарт, ну реализовали, а в чем дело? А дело все в том, что теперь реализовывать “общение” браузера (клиента) с сервером, стало более оперативным, теперь все упирается в скорость обмена между сервером и клиентом.
Событие сгенерированное на клиенте может быть легко передано, другим клиентам – участникам общего процесса взаимодействия, будь то приложения мгновенного обмена сообщениями, или другое программное обеспечение которое критично к скорости доставки данных между клиентами и сервером.
Оперативное оповещение клиентов, так же становиться более простой задачей, о изменениях на серверной стороне. Думаю с повсеместной поддержкой данного стандарта, и переориентирования существующих библиотек компонентов и фреймворков, приложения буду более интерактивными. Так как клиент установив соединение с сервером, может участвовать в непрерывном двунаправленном обмене данными.
Заголовок в классическом HTTP протоколе - лишний объем служебной информации, который постоянно приходиться передавать с клиента на сервер и обратно. В случае же с Web sockets количество заголовков уменьшено и равно одному, когда клиент устанавливает соединение.
Рассмотри пример кода клиентской стороны на JavaScript:
if ("WebSocket" in window) {
var ws = new WebSocket("ws://localhost/service");
ws.onopen = function() {
... Web Socket is connected. You can send data by send() method.
ws.send("message to send"); ....
};
ws.onmessage = function (evt) { var received_msg = evt.data; ... };
ws.onclose = function() { .... websocket is closed. };
} else {
... the browser doesn't support WebSocket, use timers and ajax or comet.
}
Обсуждение Web Socket протокола еще не завершено, и возможны изменения как в API так и в протоколе.
В дальнейшем планирую рассмотреть реализации стандарта для северной части, говорят у jetty 7 наиболее просто в использовании API. Так же думаю взять за пример статью Jetty WebSocket Server, которая ориентированна на Jetty 7. Так же говорят, что в jetty 8 войдет библиотека jwebsocket, на сайте которой много примеров по ее использованию и применению стандарта.
Теги:
Java
html
Сеть
Новости
Java Script
html 5
jetty 7
web sockets