JavaScript. Подробное руководство, 6-е издание, стр. 404
<b> document.body.insertBefore(div, input); // и вставить div перед полем ввода </b><b> input.scrollIntoView(); // Гарантировать видимость элемента input</b><b> }</b><b> // Так через веб-сокет отправляются сообщения на сервер</b><b> input.onchange = function() { // Когда пользователь нажмет клавишу Enter</b><b> var msg = nick + ": " + input.value; // Имя пользователя и текст</b><b> socket.send(msg); // Отправить через сокет</b><b> input.value = ""; // Подготовиться к вводу следующего сообщения</b><b> }</b><b>};</b><b></script></b><b><!-- Пользовательский интерфейс - это единственное поле ввода --></b><b><!-- Новые сообщения в чате будут появляться перед этим элементом --></b><b><input id="input” style="width:100%"/></b>В примере 22.17 демонстрируется реализация сервера чата, основанного на веб-сокетах, которая предназначена для работы под управлением интерпретатора Node (раздел 12.2). Сравните этот пример с примером 18.17, чтобы увидеть, что веб-сокеты упрощают не только клиентскую часть реализации чата, но и серверную.
Пример 22.17 Сервер чата на основе веб-сокетов, выполняющийся под управлением Node
<b>/*</b><b>* Этот серверный сценарий на языке JavaScript предназначен для выполнения</b><b>* под управлением NodeJS. Он играет роль сервера веб-сокетов, реализованного поверх</b><b>* HTTP-сервера с использованием внешней библиотеки websocket, которую можно найти</b><b>* по адресу: </b><a href="https://github.com/miksago/node-websocket-server/"><b>https://github.com/miksago/node-websocket-server/</b></a><b>. При обращении</b><b>* к ресурсу "/" он возвращает HTML-файл клиента чата. В ответ на обращение к любому</b><b>* другому ресурсу возвращается код 404. Сообщения принимаются посредством протокола</b><b>* веб-сокетов и просто рассылаются по всем активным соединениям.</b><b>*/</b><b>var http = require('http'); // Использовать HTTP-сервер в Node</b><b>var ws = require('websocket-server'); // Использовать внешнюю библиотеку</b><b>// Прочитать исходный файл с реализацией клиента чата. Используется ниже,</b><b>var clientui = require('fs').readFileSync("wschatclient.html");</b><b>// Создать НТТР-сервер</b><b>var httpserver = new http.Server();</b><b>// Когда HTTP-сервер получит новый запрос, будет вызвана эта функция</b><b>httpserver.on("request”, function (request, response) {</b><b> // Если запрошен ресурс "/", отправить реализацию клиента чата,</b><b> if (request.иrl === "/") { // Запрошена реализация клиента чата</b><b> response.writeHead(200, {''Content-Type”: "text/html”});</b><b> response.write(clientui); response.end();</b><b> }</b><b> else { // В ответ на любой другой запрос отправить код 404 "Not Found"</b><b> response.writeHead(404);</b><b> response.end();</b><b> }</b><b>});</b><b>// Обернуть HTTP-сервер сервером на основе веб-сокетов</b><b>var wsserver = ws.createServer({server: httpserver});</b><b>// Вызывать эту функцию при получении новых запросов на соединение</b><b>wsserver.on("connection", function(socket) {</b><b> socket.send("Добро пожаловаь в чат."); // Приветствовать нового клиента</b><b> socket.on("message", function(msg) { // Принимать сообщения от клиента</b><b> wsserver.broadcast(msg); // И рассылать их всем остальным</b><b> });</b><b>});</b><b>// Запустить сервер на порту 8000. Запуск сервера на основе веб-сокетов</b><b>// приводит также к запуску HTTP-сервера. Для его использования подключайтесь</b><b>// по адресу </b><a href="http://localhost:8000/"><b>http://localhost:8000/</b></a><b>. wsserver.listen(8000);</b>III
Справочник по базовому JavaScript
Эта часть книги представляет собой справочник по всем классам, свойствам и методам базового прикладного программного интерфейса JavaScript. В справочнике описываются следующие классы и объекты, в алфавитном порядке:
<b>Arguments</b><b>Array</b><b>Boolean</b>