назад
24 янв

Node.js и Socket.IO

Что такое Node.js

Node.js - это, фактически, просто JavaScript интерпретатор Google V8, выполняющийся на сервере, и поддерживающий дополнительно к стандартным возможностям JavaScript ввод и вывод данных, который не нужен и не предусмотрен при использовании этого движка в броузере.

Эта возможность позволяет разрабатывать на node.js полноценные веб-приложения.

Что такое Socket.io

Socket.io - это библиотека для кросс-броузерной поддержки технологии WebSockets. Она предоставляет легкий и удобный уровень абстракции, позволяющий использовать все возможные технологии обмена данными броузера с сервером вреальном времени (WebSocket, Adobe® Flash® Socket, AJAX long polling, AJAX multipart streaming, Forever Iframe, JSONP Polling), в т.ч. обеспечивает работу в старых IE и т.д.

Пример кода

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<strong>Сервер</strong>:
io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

<strong>Клиент:</strong>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
  console.log(data);
  socket.emit('my other event', { my: 'data' });
});

Реальный пример

Проекту foorgon.ru требовался интерфейс оператора колл-центра, интегрированный с общей административной системой сайта:

Эта часть административного интерфейса полностью реализована на Node.JS (фреймворк Express 3, Mongoose (MongoDB), Socket.io). При поступлении заказа, система автоматически выбирает свободного оператора, передает заказ другому оператору, если оператор не принял звонок за одну минуту, предоставляет оператору готовый текст, который ему нужно прочитать пользователю, кнопки выбора результата звонка, и т.д.

P.S.

Для Foorgon.ru нами было разработано ещё много уникальных интерфейсов, например панель управления ресторанами и парсингом меню ресторанов:

Но о них мы расскажем в следующий раз ;-)