Научная статья на тему 'Библиотека socket. Io языка программирования Node JS'

Библиотека socket. Io языка программирования Node JS Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
321
38
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
NODE JS / SOCKET.IO / WEB ПРОГРАММИРОВАНИЕ / JAVASCRIPT / ОБМЕН ДАННЫМИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Васильев Петр Алексеевич

В статье предлагаются сведения о библиотеке Socket.io. О его достоинствах и недостатках в использовании на web приложениях. Рассматриваются основные методы и использование библиотеки в реальных условиях.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Библиотека socket. Io языка программирования Node JS»

Библиотека Socket.io языка программирования Node JS

Васильев П. А.

Васильев Петр Алексеевич / Vasilev Petr Alexeevich - студент, кафедра информационных технологий, Институт математики и информатики Северо-Восточный федеральный университет, г. Якутск

Аннотация: в статье предлагаются сведения о библиотеке Socket.io. О его достоинствах и недостатках в использовании на web - приложениях. Рассматриваются основные методы и использование библиотеки в реальных условиях.

Ключевые слова: Node JS, Socket.io, Web - программирование, JavaScript, обмен данными.

В настоящее время в связи с огромной популярностью интернета и всё большего прогресса технологий стали востребованы приложения и программы для коммуникации людей в реальном времени, то есть в "online" режиме. Это такие приложения, как онлайн мультимедийные игры, чаты, мессенджеры, динамичные данные и др. Сейчас уже разработаны технологии, которые работают специально для таких целей. Один из них технология, специально созданная для языка программирования Node JS - библиотека Socket.io.

Socket.io [1] - это JavaScript библиотека для web - приложений, которая предоставляет возможность обмена данными в реальном времени. Она позволяет очень просто реализовать соединение и общение между сервером и клиентом (сайт и сервер, мобильное приложение и сервер). Socket.io - это не технология, это набор технологий, которые работают быстро и качественно. Библиотека использует такие технологии, как: Web - Socket; Adobe Flash Socket; ActiveX HTMLFile; Server - Sents Events; XHR.

Может быть использована любая технология, но обычно используется Web Socket. Если библиотека каким - то образом не может использовать его, то переходит на другую, и так до того, как он отправит и получит данные. То есть Socket.io гарантирует отправку и получение данных.

Socket.io состоит из двух частей - клиентской (сайт или мобильное приложение) и серверной части (сервер Node JS). Оба компонента имеют схожую реализацию кода. Есть два основных функций у библиотеки - это функция On и функция Emit. Emit создает подключение, например: io.sockets.emit('message', message).

Этот код создает событие 'message' и посылает данные переменного message. В клиентской части ответ на это событие происходит по функции On: socket.on('message', function(){ //некоторые действия }); Обратная связь происходим ровно таким же образом.

Все действия, которые были описаны, это не все возможности Socket.io. Одним из преимуществ над другими библиотеками является то, что она может поддерживать комнаты и адресованные передачи данных. Комнаты (room) - это своего рода 'группы', куда можно присоединиться и отсоединиться. Например, клиент создает комнату с каким-то идентификатором. Он раздает и приглашает других пользователей. Пользователи присоединяются в комнату, и они уже могут обмениваться данными в режиме 'online'. Это может быть чат, онлайн игра или что-нибудь другое. Создание комнаты происходит тогда, когда первый пользователь подключается к нему:

socket.j oin(идентификатор комнаты);

I 25 I НАУЧНЫЕ ИССЛЕДОВАНИЯ № 6 (7). 2016

Общение происходит тоже с помощью emit и on, но указывается комната, куда требуется отправить данные:

ю^идентификатор комнаты).emit('message', message);

Отсюда следует, что пользователь может находиться в нескольких комнатах одновременно. Он может получить список подключенных комнат: var listofrooms = io.socketadapter.rooms;

В такой же степени список подключенных пользователей в комнате: var listofclients = io.socket.clients(идентификатор комнаты); Рассмотрим простой пример использования socket.io в маленьком приложении: io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { });

В примере поднимается сервер на 80 - м порту, к которому подключается socket.io. Далее socket.io ждет новых соединений, после которого библиотека создает событие news и передает JSON данные {hello: 'world'} и отсылает его обратно. Кроме этого, создаются слушатели таких событий как my other event и disconnect. При создании веб-приложением события my other event, socket.io вызывает функцию обратного вызова function (data) { console.log(data); }, которая просто выводит данные в консоль. При отсоединении клиента, в консоль так же пишется соответствующая запись.

Таким образом, можно создавать различные онлайн игры, чаты с группами, и разные приложения, работающие с данными в реальном времени. Для этого socket.io прекрасно подходит, и используется множеством разработчиков.

Литература

1. Этан £pqyH.Web-development with Node & Express. Москва, 2010.

НАУЧНЫЕ ИССЛЕДОВАНИЯ № 6 (7). 2016 | 26 |

i Надоели баннеры? Вы всегда можете отключить рекламу.