Проект, объединяющий возможности баз данных, Express, Socket.io и Telegram Bot API, написанный на Node.js
Проект - чат технической поддержки, с возможностью отправки сообщений как со страницы сайта, так и из Телеграм через чат-бота.
- socket.io - библиотека, обеспечивающая двустороннюю связь на основе событий в реальном времени на основе WebSockets
- node-telegram-bot-api - библиотека для работы с Telegram Bot API
- crypto-js - библиотека крипто-стандартов
- mysql2 - библиотека для работы с БД MySQL
- express - веб-фреймворк
- chat-app - вёрстка чата на Bootstrap
- LDAP
- MySQL
Существуют две роли: админ и пользователь. Админ имеет доступ ко всем комнатам, пользователь - только к той, в которой находится.
Комнаты формируются хэшированием строки типа id + <id пользователя> + секретный ключ
. К примеру md5("id123qwerty")
.
Подключение администратора к серверу определяется отправкой запроса(query) при коннекте(пример параметров ниже в конфигурационном файле):
io(DOMEN_SERVER, { transports : ['websocket', 'polling', 'flashsocket'], query : {[SERVER_KEY]: SERVER_PSWD} })
Рассмотрим два примера: когда пользователь авторизовался в телеграм-боте и когда пользователь не авторизовался.
Пользователь отправляет сообщение с сайта, сообщение через WebSockets приходит на сервер, записывается в базу и отправляется администратору:
Ответ от администратора пользователю проходит по тому же принципу:
Пользователь отправляет сообщение с сайта или Телеграм, сообщение через WebSockets приходит на сервер, записывается в базу и отправляется администратору:
Ответ от администратора пользователю отправляется через административную панель через WebSockets приходит на сервер, записывается в базу и отправляется в личный кабинет пользователя и на Телеграм через Телеграм-бота:
The MIT License (MIT)
Copyright © 2022-2024 Dmitry Vyazin