Skip to content

Latest commit

 

History

History
85 lines (62 loc) · 5.94 KB

README_ru.md

File metadata and controls

85 lines (62 loc) · 5.94 KB
logo

Socketgram - Support Chat

Проект, объединяющий возможности баз данных, Express, Socket.io и Telegram Bot API, написанный на Node.js

Bot API Version Project Version

Введение

Проект - чат технической поддержки, с возможностью отправки сообщений как со страницы сайта, так и из Телеграм через чат-бота.

Используемые библиотеки

Node.js

  • socket.io - библиотека, обеспечивающая двустороннюю связь на основе событий в реальном времени на основе WebSockets
  • node-telegram-bot-api - библиотека для работы с Telegram Bot API
  • crypto-js - библиотека крипто-стандартов
  • mysql2 - библиотека для работы с БД MySQL
  • express - веб-фреймворк
  • chat-app - вёрстка чата на Bootstrap

PHP

  • LDAP
  • MySQL

Состав проекта

  1. Принцип работы
  2. Сервер чата
  3. Административная панель на PHP
  4. Клиентский блок

Принцип работы

Существуют две роли: админ и пользователь. Админ имеет доступ ко всем комнатам, пользователь - только к той, в которой находится. Комнаты формируются хэшированием строки типа id + <id пользователя> + секретный ключ. К примеру md5("id123qwerty"). Подключение администратора к серверу определяется отправкой запроса(query) при коннекте(пример параметров ниже в конфигурационном файле):

io(DOMEN_SERVER, { transports : ['websocket', 'polling', 'flashsocket'], query : {[SERVER_KEY]: SERVER_PSWD} })

Рассмотрим два примера: когда пользователь авторизовался в телеграм-боте и когда пользователь не авторизовался.

User 1: не авторизовался

Пользователь отправляет сообщение с сайта, сообщение через WebSockets приходит на сервер, записывается в базу и отправляется администратору:

Ответ от администратора пользователю проходит по тому же принципу:

User 2: авторизовался

Пользователь отправляет сообщение с сайта или Телеграм, сообщение через WebSockets приходит на сервер, записывается в базу и отправляется администратору:

Ответ от администратора пользователю отправляется через административную панель через WebSockets приходит на сервер, записывается в базу и отправляется в личный кабинет пользователя и на Телеграм через Телеграм-бота:

Лицензия

The MIT License (MIT)

Copyright © 2022-2024 Dmitry Vyazin