Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

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. Сообщения принимаются посредством протокола

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

*/

var http = require('http'); // Использовать HTTP-сервер в Node

var ws = require('websocket-server'); // Использовать внешнюю библиотеку

// Прочитать исходный файл с реализацией клиента чата. Используется ниже,

var clientui = require('fs').readFileSync("wschatclient.html");

// Создать НТТР-сервер

var httpserver = new http.Server;

// Когда HTTP-сервер получит новый запрос, будет вызвана эта функция

httpserver.on("request”, function (request, response) {

// Если запрошен ресурс "/", отправить реализацию клиента чата,

if (request.иrl === "/") { // Запрошена реализация клиента чата

response.writeHead(200, {''Content-Type”: "text/html”});

response.write(clientui); response.end;

}

else { // В ответ на любой другой запрос отправить код 404 "Not Found"

response.writeHead(404);

response.end;

}

});

// Обернуть HTTP-сервер сервером на основе веб-сокетов

var wsserver = ws.createServer({server: httpserver});

// Вызывать эту функцию при получении новых запросов на соединение

wsserver.on("connection", function(socket) {

socket.send("Добро пожаловаь в чат."); // Приветствовать нового клиента

socket.on("message", function(msg) { // Принимать сообщения от клиента

wsserver.broadcast(msg); // И рассылать их всем остальным

});

});

// Запустить сервер на порту 8000. Запуск сервера на основе веб-сокетов

// приводит также к запуску HTTP-сервера. Для его использования подключайтесь

// по адресу http://localhost:8000/ . wsserver.listen(8000);

III

Справочник по базовому JavaScript

Эта часть книги представляет собой справочник по всем классам, свойствам и методам базового прикладного программного интерфейса JavaScript. В справочнике описываются следующие классы и объекты, в алфавитном порядке:

Arguments

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

Эпоха Опустошителя. Том VI

Павлов Вел
6. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Эпоха Опустошителя. Том VI

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25

Представитель

Семин Никита
6. Переломный век
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Представитель

Королева Жанна. Книги 1-3

Олов Нид
Любовные романы:
исторические любовные романы
5.00
рейтинг книги
Королева Жанна. Книги 1-3

Князь Целитель 4

Ткачев Андрей Юрьевич
4. Князь Целитель
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Князь Целитель 4

Чехов. Книга 2

Гоблин (MeXXanik)
2. Адвокат Чехов
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Чехов. Книга 2

Шатун. Лесной гамбит

Трофимов Ерофей
2. Шатун
Фантастика:
боевая фантастика
7.43
рейтинг книги
Шатун. Лесной гамбит

Студент из прошлого тысячелетия

Еслер Андрей
2. Соприкосновение миров
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Студент из прошлого тысячелетия

Лекарь Империи 2

Карелин Сергей Витальевич
2. Лекарь Империи
Фантастика:
городское фэнтези
аниме
дорама
фэнтези
попаданцы
5.00
рейтинг книги
Лекарь Империи 2

Элизиум. Аликс и монеты

Андерсон Александр
1. Элизиум
Фантастика:
фэнтези
сказочная фантастика
8.98
рейтинг книги
Элизиум. Аликс и монеты

Выйду замуж за спасателя

Рам Янка
1. Спасатели
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Выйду замуж за спасателя

Гримуар темного лорда VII

Грехов Тимофей
7. Гримуар темного лорда
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда VII

Бастард

Осадчук Алексей Витальевич
1. Последняя жизнь
Фантастика:
фэнтези
героическая фантастика
попаданцы
5.86
рейтинг книги
Бастард

Подросток

Достоевский Федор Михайлович
Проза:
русская классическая проза
9.09
рейтинг книги
Подросток