Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 25.05.2025
Сообщений: 52

Реализация чата со службой поддержки

25.05.2025, 00:26. Показов 1432. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, делаю службу поддержки на сайте.
Мне нужно сделать переписку со службой поддержки.
Пользователь будет писать как бы в чат-комнату, где пользователь будет переписываться с агентом службы поддержки а как реализовать не знаю...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.05.2025, 00:26
Ответы с готовыми решениями:

Трудности при написании чата. Покажите простой пример чата на 2 человека.
Ребят, уже с ума сошел, но никак не сделаю нормальный чат в PHP. Я делаю так: есть textatea и куда...

Реализация аналога приватной комнаты для службы поддержки
Привет, хочу сделать на сайте службу поддержки. Структура БД такова: id | author_id | date |...

Анонимный чат [Реализация протокола обмена сообщениями]
Здравствуйте, появилось желание сделать анонимный чат. И уже в начале появились трудности. Как...

8
Native x86
Эксперт Hardware
 Аватар для quwy
6853 / 3787 / 1024
Регистрация: 13.02.2013
Сообщений: 11,861
25.05.2025, 00:39
Чем не устраивают готовые решения?
0
0 / 0 / 0
Регистрация: 25.05.2025
Сообщений: 52
25.05.2025, 00:45  [ТС]
Какие напрмер
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
25.05.2025, 02:04
ИванЛопатин, jivosite например
2
 Аватар для DmitriyLutsenko
75 / 61 / 16
Регистрация: 13.07.2020
Сообщений: 258
25.05.2025, 14:50
Лучший ответ Сообщение было отмечено ИванЛопатин как решение

Решение

Реально лучше использовать готовые решения, как вариант, подключить CRM систему к сайту.

Но если нужна своя реализация чата с ТП, то с технической точки зрения нужно проработать структуру таблиц, ведь надо же где-то хранить тикеты и чат по тикету:
Не скажу, что это шедеврально, но как минимум это сможет работать.

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CREATE TABLE Tickets (
    ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
    userID INT NOT NULL
    nameTicket VARCHAR(256) NOT NULL,
    textTicket TEXT NOT NULL,
    STATUS ENUM('NEW', 'IN_PROGRESS', 'CANCELED', 'COMPLETED', 'CLOSED') DEFAULT 'NEW' NOT NULL,
    createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
    updatedAt DATETIME ON UPDATE CURRENT_TIMESTAMP
 
 
CREATE TABLE Tickets_messages (
    ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
    ticketID INT NOT NULL,
    userFromID INT NOT NULL,
    isSupport BOOLEAN DEFAULT FALSE,
    message TEXT NOT NULL,
    createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (ticketID) REFERENCES Tickets(ID) ON DELETE CASCADE
)
Таблица Тикеты будет хранить тему обращения к ТП. Там все просто: там хранится
ID тикета,
ID пользователя с проблемой,
тема тикета, в каком статусе тикет (пользователь может создать тикет, отменить тикет или отметить его выполненным, поддержка может переводить его во все статусы),
дата создания тикета и дата его изменения (если предусматривается возможность редактирования темы).


Tickets_messages же должен хранить ID тикета (у 1 тикета может быть M сообщений, но у 1 сообщения может быть только 1 тикет).
ID пользователя, отправившего сообщение (флаг isSupport обозначает, кто отправил сообщение: ТП или пользователь).


Остальная реализация зависит только от движка сайта, для которого прикручивается этот чат.
1
0 / 0 / 0
Регистрация: 25.05.2025
Сообщений: 52
28.05.2025, 22:12  [ТС]
а вот как сделать чтобы к каждой комнате подключались как бы разные агенты(их будет несколько) и агенты поддержки вступали выбирали заявки
0
 Аватар для DmitriyLutsenko
75 / 61 / 16
Регистрация: 13.07.2020
Сообщений: 258
29.05.2025, 07:36
Даже такой структуры может быть достаточно.

Для пользователя и для агентов поддержки система будет выглядеть немного по разному:

Например, пользователь сможет видеть только свои тикеты (То есть, для него будет выборка из таблицы, где его ID такой же, как и у создателя тикета) и статусы этих тикетов.

Если пользователь переходит по тикету, то поднимается история переписки и она отображается на его экране.


Для агентов ТП список тикетов становится общим (зайти из ТП может кто угодно). Главное, чтобы у него были нужные права доступа (Например, в общей таблице пользователей есть флаг isTechSupport, а лучше, чтобы была таблица ролей и прав, позволяющая более тонко регулировать возможности админов (корректор, младший сотрудник, старший инженер, провизор - меняющий сообщения(вырезать оскорбления) и тд)

userFromID в Tickets_messages просто принимает ID пользователя, отправляющего сообщение.
Сами записи могут там выглядеть так:

SQL
1
2
3
4
5
6
7
8
Tickets (10012, 12, 'Не работает сборщик докера. Нет прав', "У меня такая-то проблема, хелп", 'NEW', '2025-05-29 00:00:00', '2025-05-29 00:12:00'),
Tickets (10013, 14, 'Сайт упал', "У меня такая-то проблема, хелп", 'NEW', '2025-05-29 00:00:00', '2025-05-29 00:12:00'),
 
Tickets_messages(1234567, 12, 0, "Помогите с докер...",'2025-05-29 00:12:00'),
Tickets_messages(1234568, 1024, 1, "Младший инженер Иван на связи. Пробуем решить проблему",'2025-05-29 00:12:00'),
Tickets_messages(1234569, 1025, 1, "Старший инженер Степан взял задачу на контроль. Отладили с Иваном конфиг. Проверьте, пожалуйста!",'2025-05-29 03:12:00'),
Tickets_messages(1234570, 12, 0, "Спасибо, все работает, контейнеры живы и не падают",'2025-05-29 10:12:00'),
Tickets (10012, 12, 'Не работает сборщик докера. Нет прав', "У меня такая-то проблема, хелп", 'COMPLETED', '2025-05-29 00:00:00', '2025-05-29 10:13:00'),
1
Эксперт PHP
 Аватар для liris
4357 / 1000 / 150
Регистрация: 16.01.2023
Сообщений: 2,462
29.05.2025, 11:08
Цитата Сообщение от DmitriyLutsenko Посмотреть сообщение
Если пользователь переходит по тикету, то поднимается история переписки и она отображается на его экране.
Я бы сюда добавил еще флаг для сообщения, что его может видеть только агент поддержки (а у пользователя это сообщение не отображалось бы). Чтобы при передаче диалога другому сотруднику можно было оставить какие-то комментарии.
2
 Аватар для DmitriyLutsenko
75 / 61 / 16
Регистрация: 13.07.2020
Сообщений: 258
29.05.2025, 23:00
Цитата Сообщение от liris Посмотреть сообщение
Я бы сюда добавил еще флаг для сообщения, что его может видеть только агент поддержки (а у пользователя это сообщение не отображалось бы). Чтобы при передаче диалога другому сотруднику можно было оставить какие-то комментарии.
Согласен, на данную структуру можно накинуть дополнительные поля, чтобы развить функциональность чата.

Сейчас это просто чат между админами и 1 пользователем по конкретной рубрике.

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

В общем, улучшать и улучшать
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2025, 23:00
Помогаю со студенческими работами здесь

Как реализовать поддержку нескольких языков на сайте?
Возник вопрос. Как реализовать поддержку нескольких языков на сайте. предположим есть файлы en.php...

Поддержка php
Привет всем! Не знаете, с какой версий php поддерживаются классы?

Функция перекодировки utf8 -> cp1251 с поддержкой казахских символов
Выкладываю сюда (т.к. не нашел более подходящего места) функцию, которая корректно перекодирует все...

Поддержка Mbstring
Ребята не могу в пхп включить Поддержку Mbstring, может кто-то выложит пакет с Поддержкой Mbstring...

Бесплатный хостинг с поддержкой PHP
Подскажите, пожалуйсто, где можно найти бесплатный хостинг для php саутов.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru