Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

<script>

window.onload = function {

// Позаботиться о некоторых деталях пользовательского интерфейса

var nick = prompt("Введите свой псевдоним"); // Получить псевдоним

var input = document.getElementById("input"); // Отыскать поле ввода

input.focus; // Установить фокус ввода

// Открыть веб-сокет для отправки и приема сообщений в чате.

// Предполагается, что HTTP-сервер, откуда загружается сценарий, также

// поддерживает веб-сокеты, и для связи с ним используется то же имя хоста

// и номер порта, но вместо протокола http:// используется протокол ws://

var socket = new WebSocket("ws://" + location.host + "/");

// Так через веб-сокет принимаются сообщения с сервера

socket.onmessage = function(event) { // Вызывается при получении сообщения

var msg = event.data; // Получить текст из объекта события

var node = document.createTextNode(msg); // Создать текстовый узел

var div = document.createElement("div"); // Создать элемент <div>

div.appendChild(node); // Добавить текстовый узел

document.body.insertBefore(div, input); // и вставить div перед полем ввода

input.scrollIntoView; // Гарантировать видимость элемента input

}

// Так через веб-сокет отправляются сообщения на сервер

input.onchange = function { // Когда пользователь нажмет клавишу Enter

var msg = nick + ": " + input.value; // Имя пользователя и текст

socket.send(msg); // Отправить через сокет

input.value = ""; // Подготовиться к вводу следующего сообщения

}

};

</script>

<!-- Пользовательский интерфейс - это единственное поле ввода -->

<!-- Новые сообщения в чате будут появляться перед этим элементом -->

<input id="input” style="width:100%"/>

В примере 22.17 демонстрируется реализация сервера чата, основанного на веб-сокетах, которая предназначена для работы под управлением интерпретатора Node (раздел 12.2). Сравните этот пример с примером 18.17, чтобы увидеть, что веб-сокеты упрощают не только клиентскую часть реализации чата, но и серверную.

Пример 22.17 Сервер чата на основе веб-сокетов, выполняющийся под управлением Node

/*

* Этот серверный сценарий на языке JavaScript предназначен для выполнения

* под управлением NodeJS. Он играет роль сервера веб-сокетов, реализованного поверх

* HTTP-сервера с использованием внешней библиотеки websocket, которую можно найти

* по адресу: https://github.com/miksago/node-websocket-server/ . При обращении

* к ресурсу "/" он возвращает HTML-файл клиента чата. В ответ на обращение к любому

* другому ресурсу возвращается код 404. Сообщения принимаются посредством протокола

* веб-сокетов и просто рассылаются по всем активным соединениям.

  • Читать дальше
  • 1
  • ...
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: