WebSocket (Веб-сокет) — это протокол полнодуплексной связи поверх TCP-соединения. То есть с помощью этого протокола можно передавать и принимать сообщение одновременно. Он позволяет в режиме реального времени обмениваться сообщениями между сервером и клиентом (браузером).
WebSocket устанавливает одно единственное постоянное соединение клиента с сервером, по которому происходит двухсторонний обмен информацией. Так как соединение с клиентом и сервером не закрывается (он держится открытым постоянно), это позволяет избежать передачи лишних данных (HTTP-заголовки). Так же в стандарте WebSockets нет никаких ограничение по количеству открытых соединение и по очередностью запросов.
Через вебсокеты вы можете не только передавать тестовые сообщения, но так же передавать еще и файлы:
socket.send(form.elements[0].file);
Для отправки не текстовых данных можно также использовать объекты Blob и ArrayBuffer.
Преимущества websockets:
Работать с вебсокетами довольно легко, не требуется больших усилий для того что бы написать простой «hello server!» скрипт:
// Cоздаем соедение между сервером и клиентомvar exampleSocket = new WebSocket("ws://localhost:8080/socketserver"); // Отправляем сообщение на серверexampleSocket.send("I sey hello server!");// Получаем сообщение от сервераexampleSocket.onmessage = function (event) { alert(event.data);}// Если что то не так, то выведем ошибкуexampleSocket.onerror = function(error) { alert(error.message);};// Проверяем как закрылось соединение с серверомexampleSocket.onclose = function(event) { if (event.wasClean) { alert("Ok"); } else { alert("Error"); // например, "убит" процесс сервера } alert('Error : ' + event.code + ' reason: ' + event.reason);};
В качестве сервера вебсокетов лучше всего использовать node.js.
Самый простой вариант использования websocket’ов это чат. Однако не только чатами ограничивается использование вебсокетов, они нужны везде, где есть постоянная двухсторонная связь между клиентом (браузером) и сервером. Допустим этим может интерактивный интерфейс веб-сайта в котором постоянно происходят изменения отдельных блоков, или всей страницы в зависимости от какого-либо действия пользователя.
На данный момент все современные браузеры поддерживают технологию websocket . Что бы попробовать сокеты в действии без запуска сервера на своей стороне используйте сайт websocket.org , который предоставляет простейший сервер веб-сокетов: веб-страница отправляет ему сообщение, а он возвращает это же сообщение веб-странице.
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…