Шрифт:
*/
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
Array
Boolean
Date
Error
EvalError
Function
Global
JSON
Math
Number
Object
RangeError
ReferenceError
RegExp
String
SyntaxError
TypeError
URIError
Справочные страницы с описанием методов и свойств классов отсортированы по их полным именам, включающим имена определяющих их классов. Например, чтобы найти метод replace класса String, его следует искать как String. replace, а не просто replace.