HTML5. WebSockets

Введение

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

На текущий момент (июль 2012 года) веб-сокеты поддерживают практически все браузеры: FireFox, Chrome, Safari, Opera. Последний браузер пока еще не решается использовать данную технологию, поэтому включаем ее ручками: заходим в about:config, ищем в списке модулей WebSockets, ставим галочку напротив EnableWebsockets. Про IE 9 могу сказать, что вебсокетов в нем нет, но html5 частично реализован, обещают их реализовать в следующей версии браузера.

Примеры

                        var webSocket = new WebSocket('ws://localhost/echo');

                        webSocket.onopen = function(event) {
                            alert('onopen');
                            webSocket.send("Hello Web Socket!");
                        };

                        webSocket.onmessage = function(event) {
                            alert('onmessage, ' + event.data);
                            webSocket.close();
                        };

                        webSocket.onclose = function(event) {
                            alert('onclose');
                        };
                

Тут все просто как банан.

В конструктор веб-сокета передаем адрес сервера с префиксом ws для обычного соединения или wss для SSL-соединения. Если порт явно не указан, то для ws используется 80, а для wss 443 порт. Далее, определяем функции обратного вызова: onopen (при открытии сокета), onmessage (при получении сообщения), onclose (при закрытии сокета). Объект события каждой функции имеет поле data, которое непосредственно содержит данные, пришедшие с другого конца сокета. Отправляемые и получаемые данные могут быть любого типа - обычный текст, xml, json и др.

Рельные примеры веб-приложений с использованием веб-сокетов:
1. ивглонасс.рф
2. bombermine.ru

Протестировать браузер на поддержку веб-сокетов:
1. websocketstest.com
2. websocket.org/echo.html

Сайт создан в системе uCoz