1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kangchang-webim

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Дизайн-концепция никогда не устаревает!

Описание (данный проект фокусируется не на использовании и развёртывании, а на предоставлении решения для обмена мгновенными сообщениями (IM), предлагая концепцию дизайна, включая разработку простой базы данных)

  • Файлы базы данных могут немного отличаться от этого проекта, но это не влияет на работу, поскольку у Alibaba Cloud истёк срок оплаты, что привело к освобождению ресурсов, и база данных не была своевременно зарезервирована. Поэтому у меня нет актуальной версии файла с дизайном базы данных.
  • Первая версия была написана в спешке, многие идеи не были реализованы, модули не разделены, имена и стандарты кодирования не соответствуют требованиям, также есть несколько очевидных уязвимостей. Пожалуйста, не используйте их неправильно.
  • Архитектура (смотрите на эту диаграмму как на чтение десятилетней книги): https://www.processon.com/view/link/5a50a4bee4b0a447b9910216
  • База данных (подходит для всех IM): https://www.processon.com/view/link/598876dde4b0e56e5d07f787
  • Авторский WeChat: 875079028. На самом деле, функционал очень прост, каждый может его реализовать, просто никто не берётся за это, либо из-за отсутствия времени, либо из страха перед трудностями. Вот почему я решил сделать это сам. Этот проект в основном предназначен для предоставления концепции и идей!
  • Проект очень простой, всего один контроллер (легко преобразовать в Springboot), две страницы (страница входа и страница чата).
  • Идентификатор пользователя или учётная запись — это тема MQTT, пароль пользователя или учётные данные — это имя пользователя и пароль для подключения к MQTT (файл конфигурации проекта по умолчанию содержит адрес сервера MQTT, который можно временно не настраивать самостоятельно).
  • Веб-интерфейс администратора IM пока не открыт для общественности (для централизованного управления компаниями, добавления групп, отделов и друзей, обслуживания клиентов и т. д.).
  • Проект всё ещё актуален, и его обновление не происходит из-за отсутствия необходимости в модернизации. Он очень стабилен (в то время Springboot ещё не был популярен, и разделение между фронтендом и бэкендом тоже не было распространено).
  • Видео проекта: нажмите здесь, чтобы посмотреть

Основные технологии

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

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

Использует JFinal, что упрощает и ускоряет разработку на начальном этапе, но усложняет расширение в будущем. Многие функции не поддерживаются, и интеграция затруднена. Рекомендуется перейти на Springboot, где уже есть успешные примеры такой миграции.

Однако этот проект в первую очередь предназначен для понимания концепции обмена мгновенными сообщениями и принципов работы, а не для расширения функциональности.

В качестве протокола связи используется MQTT, для которого необходимо настроить собственный MQ-сервер (можно использовать любой MQ-брокер, поддерживающий протокол MQTT).

Причина использования этого протокола заключается в том, что он предоставляет удобные механизмы подписки и публикации, а также имеет клиентские SDK для различных систем и языков программирования. Я рекомендую всем, кто разрабатывает системы обмена мгновенными сообщениями, использовать этот протокол (основная сложность заключается в логическом проектировании тем).

** Основная идея заключается в умном использовании логики «+» и «#» в темах MQTT для определения того, предназначены ли сообщения для группы или отдельного пользователя.**

** Обработка состояния онлайн также осуществляется с помощью механизмов MQTT, таких как сообщения о состоянии и сердцебиение.**

Неважно, является ли получение сообщений push-уведомлениями или pull-запросами, оба подхода подходят. Хотя технология проста, она обладает высокой функциональностью и имеет некоторые уязвимости.

Адреса для скачивания MQTT

https://docs.emqx.cn/cn/broker/latest/getting-started/install.html https://docs.emqx.cn/cn/broker/latest/development/resource.html

Основные функции

  1. История чата
  2. Добавление друзей
  3. Создание и управление группами
  4. Частные беседы с друзьями
  5. Групповые беседы с друзьями
  6. Уведомления об офлайн-сообщениях (важная функция)
  7. Отправка файлов
  8. Онлайн-уведомления (важная функция)
  9. Управление группами друзей
  10. Поиск друзей
  11. Отмена отправки сообщений (на стадии тестирования)
  12. Удаление друзей
  13. Выход из групп
  14. Информация о статусе друзей (важная функция, актуальная информация)
  15. Обработка ошибок при потере соединения (важная функция, совместима со всеми браузерами, точность информации о статусе 100%)
  16. Изменение личной информации (вторая версия)
  17. Просмотр подробной информации о друзьях (вторая версия)
  18. Получение сообщений (поддерживается несколькими клиентами, получение сообщений)
  19. Перемещение друзей по группам (вторая версия)
  20. Просмотр детальной информации о друзьях (вторая версия)
  21. Модификация комментариев (комментарии друзей/групп)
  22. Шифрование сообщений (вторая версия)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/kangchang-webim.git
git@api.gitlife.ru:oschina-mirror/kangchang-webim.git
oschina-mirror
kangchang-webim
kangchang-webim
master