Учебники

Socket.IO — Обзор

Socket.IO — это библиотека JavaScript для веб-приложений реального времени . Он обеспечивает двустороннюю связь в реальном времени между веб-клиентами и серверами. Он состоит из двух частей: клиентской библиотеки, которая запускается в браузере, и серверной библиотеки для node.js. Оба компонента имеют идентичный API.

Приложения в реальном времени

Приложение реального времени (RTA) — это приложение, которое функционирует в течение периода, который пользователь воспринимает как немедленный или текущий.

Некоторые примеры приложений в реальном времени —

  • Мессенджеры — приложения для чата, такие как Whatsapp, Facebook Messenger и т. Д. Вам не нужно обновлять свое приложение / веб-сайт для получения новых сообщений.

  • Push-уведомления — когда кто-то помечает вас на фотографии в Facebook, вы сразу получаете уведомление.

  • Приложения для совместной работы — приложения, такие как Google Docs, которые позволяют нескольким людям одновременно обновлять одни и те же документы и вносить изменения во все экземпляры людей.

  • Онлайн-игры — такие игры, как Counter Strike, Call of Duty и т. Д., Также являются примерами приложений в реальном времени.

Мессенджеры — приложения для чата, такие как Whatsapp, Facebook Messenger и т. Д. Вам не нужно обновлять свое приложение / веб-сайт для получения новых сообщений.

Push-уведомления — когда кто-то помечает вас на фотографии в Facebook, вы сразу получаете уведомление.

Приложения для совместной работы — приложения, такие как Google Docs, которые позволяют нескольким людям одновременно обновлять одни и те же документы и вносить изменения во все экземпляры людей.

Онлайн-игры — такие игры, как Counter Strike, Call of Duty и т. Д., Также являются примерами приложений в реальном времени.

Почему Socket.IO?

Написание приложения для реального времени с использованием популярных стеков веб-приложений, таких как LAMP (PHP), традиционно было очень трудным. Он включает в себя опрос сервера на наличие изменений, отслеживание временных меток, и это намного медленнее, чем должно быть.

Сокеты традиционно были решением, вокруг которого строится большинство систем реального времени, обеспечивая двунаправленный канал связи между клиентом и сервером. Это означает, что сервер может отправлять сообщения клиентам. Всякий раз, когда происходит событие, идея заключается в том, что сервер получит его и отправит заинтересованным подключенным клиентам.

Socket.IO довольно популярен, его используют Microsoft Office, Yammer, Zendesk, Trello и многие другие организации для создания надежных систем реального времени. Это одна из самых мощных JavaScript-фреймворков на GitHub и наиболее зависимая от модуля NPM (Node Package Manager). Socket.IO также имеет огромное сообщество, что означает, что найти помощь довольно легко.

ExpressJS

Мы будем использовать Express для создания веб-сервера, с которым будет работать Socket.IO. Можно использовать любую другую инфраструктуру на стороне узла или даже HTTP-сервер узла. Тем не менее, ExpressJS позволяет легко определять маршруты и другие вещи. Чтобы узнать больше о Express и получить общее представление о нем, перейдите к учебнику по ExpressJS .