HTML5 WebSocket
HTML5 WebSocket это начало обеспечивается полнодуплексном связи по единому протоколу TCP соединения.
В WebSocket API, браузер и сервер просто сделать действие рукопожатие, а затем, между браузером и сервером на формирование ускоренную. Вы можете передавать данные непосредственно друг с другом.
Браузер отправляет на сервер с помощью запроса JavaScript, чтобы установить соединение WebSocket, соединение установлено, клиент и сервер может быть подключен напрямую обмениваться данными через TCP.
Когда вы получаете соединение веб - сокет, вы можете отправить данные на сервер с помощью методаSend (), и получить данные , возвращаемые сервером OnMessageсобытие.
Следующий WebSocket API используется для создания объектов.
var Socket = new WebSocket(url, [protocal] );
Приведенный выше код первого параметра URL, указать соединение URL. Второй параметр является необязательным протоколом, который определяет приемлемый вспомогательный протокол.
WebSocket недвижимость
Эти атрибуты объекта WebSocket. Предположим, что мы используем приведенный выше код для создания объекта сокета:
свойство | описание |
---|---|
Socket.readyState | Только для чтения атрибутreadyState показывает состояние соединения может иметь следующие значения:
|
Socket.bufferedAmount | Только для чтения атрибутbufferedAmount было отправить () помещаются в очередь ожидания для передачи, но до сих пор не выпустил UTF-8 строк текста байт. |
WebSocket событие
Вот объект события WebSocket. Предположим, что мы используем приведенный выше код для создания объекта сокета:
событие | обработчик событий | описание |
---|---|---|
открытый | Socket.onopen | Срабатывает при установлении соединения |
сообщение | Socket.onmessage | Когда клиент получает данные о триггером сервера |
ошибка | Socket.onerror | Это срабатывает, когда возникает ошибка коммуникации |
близко | Socket.onclose | Срабатывает, когда соединение закрыто |
метод WebSocket
Вот объект методы WebSocket. Предположим, что мы используем приведенный выше код для создания объекта сокета:
способ | описание |
---|---|
Socket.send () | Используйте соединение для передачи данных |
Socket.close () | Закрыть соединение |
экземпляр WebSocket
Протокол WebSocket Природа представляет собой протокол TCP на основе.
Для установления соединения WebSocket, браузер клиента инициирует сервер HTTP сначала хотел просить, чтобы этот запрос и обычные запросы HTTP, содержит некоторую дополнительную информацию заголовка, в котором дополнительная информация заголовка "Обновление: WebSocket" указывает на то, что это протокол прикладного обновить запрос HTTP, сервер обрабатывает дополнительную информацию заголовка, то генерируется ответное сообщение обратно клиенту, подключение WebSocket клиента и устанавливается сервер, обе стороны могут, через соединительный канал свободной передачи информации и связи Он сохраняется до клиента или на стороне сервера активной стороной, чтобы закрыть соединение.
Клиент HTML и JavaScript
В настоящее время большинство браузеров поддерживают WebSocket (интерфейсы), вы можете попробовать примеры из следующих браузеров: Chrome, Mozilla, Opera и Safari.
содержание w3big_websocket.html файлов
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>本教程(w3big.com)</title> <script type="text/javascript"> function WebSocketTest() { if ("WebSocket" in window) { alert("您的浏览器支持 WebSocket!"); // 打开一个 web socket var ws = new WebSocket("ws://localhost:9998/echo"); ws.onopen = function() { // Web Socket 已连接上,使用 send() 方法发送数据 ws.send("发送数据"); alert("数据发送中..."); }; ws.onmessage = function (evt) { var received_msg = evt.data; alert("数据已接收..."); }; ws.onclose = function() { // 关闭 websocket alert("连接已关闭..."); }; } else { // 浏览器不支持 WebSocket alert("您的浏览器不支持 WebSocket!"); } } </script> </head> <body> <div id="sse"> <a href="javascript:WebSocketTest()">运行 WebSocket</a> </div> </body> </html>
Установка pywebsocket
Перед выполнением вышеуказанной программы, нам необходимо создать службу поддержки WebSocket. От pywebsocket загрузки mod_pywebsocket, или используйте команду ГИТ для скачивания файла:
git clone https://github.com/google/pywebsocket.git
mod_pywebsocket поддержка необходима среда Python
mod_pywebsocket самолетов Ан расширений веб-сокетов Apache HTTP, шаги установки следующим образом:Разархивируйте загруженный файл.
Введите каталогpywebsocket.
Run:
$ python setup.py build $ sudo python setup.py install
Смотрите документацию:
$ pydoc mod_pywebsocket
Open Service
Выполните следующую команду в каталогеpywebsocket / mod_pywebsocket:
$ sudo python standalone.py -p 9998 -w ../example/
Приведенная выше команда откроет номер порта службы 9998, используйте параметр -w, чтобы установить обработчик каталога echo_wsh.py расположенный.
Теперь мы можем открыть w3big_websocket.html файл, созданный ранее в браузере Chrome. Если Ваш браузер поддерживает WebSocket (), нажмите кнопку "Выполнить WebSocket", вы можете увидеть весь процесс каждый шаг во всплывающем окне, процесс Gif демо:
После того, как мы остановить службу, то появится "Соединение закрыто ...."