WebSocket - это API, построенный поверх сокетов TCP и протокола для двунаправленной полнодуплексной связи между клиентом и сервером без использования HTTP.

WebSockets(или WebSocket) - это API и протокол для двунаправленной полнодуплексной связи через сокеты TCP. Первоначально API WebSockets был частью HTML5стандарта, но он был разделен на отдельный стандарт W3C. Протокол WebSockets представляет собой IETFстандарт, описанный в RFC 6455.

API WebSockets имеет полную поддержку браузеров в Chrome 14, Firefox 6, IE 10 (для настольных ПК и мобильных устройств), Opera 12.1 (для настольных ПК и мобильных устройств), Safari 6.0 (для настольных ПК и мобильных устройств), Android 4.4, Chrome Mobile и Firefox Mobile. Некоторые старые браузеры имеют частичную поддержку или могут поддерживаться с помощью резервной копии на основе Flash.

WebSockets поддерживает как незашифрованные, так и зашифрованные соединения. Незашифрованные соединения используют схему URL-адреса «ws: //» и по умолчанию используют порт 80. Зашифрованные соединения используют схему URL-адреса «wss: //» и по умолчанию используют порт 443. Зашифрованные соединения используют Безопасность уровня транспорта(TLS).

Простой пример JavaScript браузера WebSockets:

if ("WebSocket" in window) {
    var ws = new WebSocket("ws://echo.websocket.org/");
    ws.onopen = function() {
        console.log("WebSockets connection opened");
        ws.send("a test message");
    }
    ws.onmessage = function(e) {
        console.log("Got WebSockets message: " + e.data);
    }
    ws.onclose = function() {
        console.log("WebSockets connection closed");
    }
} else {
    // No native support
}

Полезные ссылки

Книги