Разработка TCP-чата с использованием фреймворка Electron | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №3 (450) январь 2023 г.

Дата публикации: 21.01.2023

Статья просмотрена: 142 раза

Библиографическое описание:

Орлов, И. А. Разработка TCP-чата с использованием фреймворка Electron / И. А. Орлов. — Текст : непосредственный // Молодой ученый. — 2023. — № 3 (450). — С. 13-16. — URL: https://moluch.ru/archive/450/99239/ (дата обращения: 16.11.2024).



В статье рассматривается разработка серверной части TCP чата на языке JavaScript с использованием node.js и клиентской части TCP чата c использованием фреймворка Electron.

Ключевые слова: JavaScript, Node.js, Electron, TCP протокол.

Фреймворк Electron

Фреймворк Electron разработан компанией GitHub. Данный фреймворк предоставляет возможность разрабатывать настольные графические приложения с использованием возможностей браузера Chromium и Node.js [1].

Одним из главных преимуществ Electron является его кроссплатформенность. Приложения, разработанные с использованием Electron, поддерживаются следующими операционными системами: macOS, Windows, Linux [1].

Node.js — программная платформа расширяющая возможности языка JavaScript, содержащая множество библиотек, которые упрощают разработку приложений. При использовании Node.js используется событийно-ориентированное и асинхронное программирование [2].

TCP (Transmission Control Protocol) — данный протокол передачи данных устанавливает предварительное соединение, осуществляет повторный запрос данных в случае потери и может устранять дублирование двух копий одного пакета, тем самым гарантирует целостность передаваемых данных.

Для реализации TCP соединения на языке программирования JavaScript существует библиотека Socket.IO. Данная библиотека обеспечивает канал связи между клиентом и сервером с низкими задержками [3].

Устройство TCP чата

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

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

Клиентская часть предназначена непосредственно для выбора адресата и набора текста сообщения.

Соединение между клиентом и сервером устанавливается про протоколу TCP. Для его реализации в коде будет использоваться библиотека Socket.IO. Клиентская часть для удобства пользователя должна иметь графический интерфейс. Поэтому для её создания используется фреймворк Electron.

Пользовательская часть TCP чата

На рис. 1 представлен вид пользовательской части TCP чата.

Вид пользовательской части TCP чата

Рис. 1. Вид пользовательской части TCP чата

На рис. 1 видно, что в данный момент онлайн пользователь с именем Andrey. По нажатию на клавишу Enter или значок отправки, введённое сообщение будет отправлено на сервер. В структуру сообщения входит имя отправителя, адресат и текст сообщения.

Серверная часть TCP чата

Схема алгоритма работы серверной части представлена на рис. 2.

Схема алгоритм серверной части чата

Рис. 2. Схема алгоритм серверной части чата

При запуске сервера инициализируется объект библиотеки Socket.IO. Далее сервер ожидает подключения пользователей. Как только пользователь подключился программа добавляет его имя в список со всеми онлайн пользователями и производит отправку данного списка всем остальным пользователям чата, если такие имеются. При отключении пользователя (закрытие клиентской части чата) пользователь удаляется из списка со всеми пользователями и производится отправка данного списка всем пользователям.

Как только подключённый пользователь отправил сообщение на сервер, программа определяет адресата (информация содержится в отправленном сообщении от пользователя) и пересылает сообщение. Искать пользователя в списке со всеми пользователями не нужно, так как у клиента гарантированно отображаются только онлайн пользователи чата.

Литература:

  1. Документация к Electron: [Электронный ресурс]. URL: https://www.electronjs.org/docs/latest. (Дата обращения: 17.01.2023).
  2. Документация к Node.js: [Электронный ресурс]. URL: https://nodejs.org/docs/latest-v17.x/api/. (Дата обращения: 16.01.2023).
  3. Документация к Socket.IO: [Электронный ресурс]. URL: https://socket.io/docs/v4/ (Дата обращения: 17.01.2023).
Основные термины (генерируются автоматически): TCP, клиентская часть, пользователь, пользовательская часть, серверная часть, чат, онлайн пользователь, подключение пользователей, сервер, серверная часть чата.


Ключевые слова

JavaScript, electron, Node.js, TCP протокол

Похожие статьи

Использование сервиса API SendGrid для реализации отправки Email-сообщений в проекте ASP.NET Core

В данной статье рассмотрено использование Email-рассылки при помощи API SendGrid в проекте ASP.NET Core.

Абстрактные и динамически сгенерированные контроллеры в ASP.NET

В данной статье будет рассмотрен подход автоматически сгенерированных контроллеров в одной из самых популярных технологий для написания веб-сайтов — ASP.NET Core MVC.

Защита веб-приложения на фреймворке Django

При проектировании веб-приложения важна защита пользовательских данных. В данной статье рассмотрим основные типы атак и методы защиты на фреймворке Django.

Разработка алгоритма валидации форм на клиентской стороне для передачи данных

В данной статье рассмотрены методы и алгоритмы функционирования систем клиент-серверной архитектуры для передачи данных с помощью технологий программных инструментов: HTML, CSS, Javascript.

Рассмотрение декларативного подхода к разработке интерфейсов мобильных приложений для Android

В данной статье рассматриваются императивный и декларативный подходы к разработке интерфейсов, анализируются преимущества и недостатки библиотеки Jetpack Compose.

Автоматическая поддержка документации Asp.Net Core и Angular веб-приложений

В данной статье рассматривается автоматизация генерации и сопровождения документации Asp.Net Core и Angular приложения, с автоматической публикацией в GitLab.

Технология ASP.NET MVC

В статье рассматривается проектирование архитектуры приложений ASP.NET MVC. Авторы описывают теоретические основы ASP.NET MVC, которые необходимы для разработки web-приложений платформы.NET Framework.

Использование двухфакторной аутентификации в проекте ASP.NET Core

Данная статья рассматривает процесс настройки двухфакторной аутентификации в проектах ASP.NET Core.

Работа с элементами GUI на примере приложения с использованием кроссплатформенного фреймворка Qt

В статье подробно разобран код приложения, написанного с использованием кроссплатформенного фреймворка Qt основанного на языке C++. Приложение Dynamic Layouts является одним из примеров, входящих в пакет Qt Creator. На примере данного приложения расс...

Обзор технологии GraphQL

В статье рассматривается технология GraphQL, приводится обзор достоинств и недостатков, а также сравнение с REST технологией.

Похожие статьи

Использование сервиса API SendGrid для реализации отправки Email-сообщений в проекте ASP.NET Core

В данной статье рассмотрено использование Email-рассылки при помощи API SendGrid в проекте ASP.NET Core.

Абстрактные и динамически сгенерированные контроллеры в ASP.NET

В данной статье будет рассмотрен подход автоматически сгенерированных контроллеров в одной из самых популярных технологий для написания веб-сайтов — ASP.NET Core MVC.

Защита веб-приложения на фреймворке Django

При проектировании веб-приложения важна защита пользовательских данных. В данной статье рассмотрим основные типы атак и методы защиты на фреймворке Django.

Разработка алгоритма валидации форм на клиентской стороне для передачи данных

В данной статье рассмотрены методы и алгоритмы функционирования систем клиент-серверной архитектуры для передачи данных с помощью технологий программных инструментов: HTML, CSS, Javascript.

Рассмотрение декларативного подхода к разработке интерфейсов мобильных приложений для Android

В данной статье рассматриваются императивный и декларативный подходы к разработке интерфейсов, анализируются преимущества и недостатки библиотеки Jetpack Compose.

Автоматическая поддержка документации Asp.Net Core и Angular веб-приложений

В данной статье рассматривается автоматизация генерации и сопровождения документации Asp.Net Core и Angular приложения, с автоматической публикацией в GitLab.

Технология ASP.NET MVC

В статье рассматривается проектирование архитектуры приложений ASP.NET MVC. Авторы описывают теоретические основы ASP.NET MVC, которые необходимы для разработки web-приложений платформы.NET Framework.

Использование двухфакторной аутентификации в проекте ASP.NET Core

Данная статья рассматривает процесс настройки двухфакторной аутентификации в проектах ASP.NET Core.

Работа с элементами GUI на примере приложения с использованием кроссплатформенного фреймворка Qt

В статье подробно разобран код приложения, написанного с использованием кроссплатформенного фреймворка Qt основанного на языке C++. Приложение Dynamic Layouts является одним из примеров, входящих в пакет Qt Creator. На примере данного приложения расс...

Обзор технологии GraphQL

В статье рассматривается технология GraphQL, приводится обзор достоинств и недостатков, а также сравнение с REST технологией.

Задать вопрос