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

OSCHINA-MIRROR/balloonwj-flamingo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 14 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 11:09 d5c6d98

Flamingo IM

Я специально записал для Flamingo два видео с техническими объяснениями, чтобы помочь читателям в изучении. В видео рассказывается о методах компиляции и развёртывания Flamingo, общей архитектуре, технических деталях реализации каждого модуля, а также о том, как изучать Flamingo. Если вам нужны видеоуроки, вы можете отсканировать QR-код [высокопроизводительного сервера разработки] и подписаться на него. После подписки ответьте «flamingo» в фоновом режиме, чтобы получить ссылку для скачивания.

Введение

Flamingo IM — это высокопроизводительное и лёгкое открытое программное обеспечение для мгновенного обмена сообщениями. На данный момент оно включает серверную часть, клиентскую часть для ПК, версии для Android и iOS, которые находятся в разработке.

Список функций

На данный момент реализованы следующие функции (здесь перечислены только сетевые функции, другие уже реализованные функции для клиентов не включены, пожалуйста, найдите их самостоятельно):

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

Компиляция и установка

Компиляция и установка серверной части
Необходимые инструменты разработки
  1. Установите cmake, makefile и gcc.

    Система — Linux, рекомендуемая версия — CentOS 7.0 или выше. Код сервера написан на чистом C++11, поэтому ваша версия gcc/g++ должна быть не ниже 4.7, рекомендуется использовать версию 4.8.5. Кроме того, используйте cmake и makefile для управления проектами и компиляции, поэтому вам необходимо установить эти инструменты.

  2. Установите mysql.

    Используемая база данных — mysql, если вы используете CentOS 7.0 и выше, вам нужно установить mariadb-server, mariadb-client и mariadb-devel. Если вы используете другую версию Linux, установите mysql-server, mysql-client и mysql-devel.

    Чат-сервер будет использовать mysql, имя базы данных mysql по умолчанию — flamingo, имя пользователя и пароль для входа настраиваются в файле flamingoserver/etc/chatserver.conf.

    При первом запуске чат-сервера программа автоматически проверит, существует ли библиотека с именем flamingo. Если нет, она создаст её и проверит, существуют ли соответствующие таблицы данных. Если нет, они будут созданы. Поэтому нет необходимости создавать соответствующие библиотеки и таблицы вручную. Конечно, из-за различий в версиях mysql могут быть небольшие различия в синтаксисе SQL, что может привести к сбою при создании таблиц. В этом случае вам, возможно, придётся создать таблицы вручную, инструкции создания таблиц находятся в flamingoserver/table.sql. В настоящее время используются четыре таблицы:

Таблица Назначение
t_user Информация о пользователе
t_user_relationship Информация о друзьях и членах группы
t_chatmsg История чата
Метод компиляции
  1. Войдите в каталог flamingoserver и выполните:

    cmake .

    Если ошибок нет, будет создан файл Makefile.

  2. Выполните следующую команду для создания исполняемых файлов: chatserver, fileserver, imgserver.

    make

    Функции каждого сервиса следующие:

Сервис Назначение
chatserver Чат-сервис для базовой регистрации пользователей, входа в систему и функций чата.
fileserver Сервис файлов для отправки автономных файлов в окне чата и автоматической загрузки пакетов обновлений.
imgserver Сервис изображений для отправки файлов изображений в чате и загрузки и выгрузки пользовательских аватаров.
Способ запуска

chatserver, fileserver и imgserver — независимые сервисы, которые можно запускать непосредственно в Linux или запускать как демоны. Команда запуска демона:

./chatserver -d
./fileserver -d
./imgserver -d
Используемые порты

Вы можете использовать команду lsof для проверки того, находится ли порт в состоянии прослушивания:

[zhangyl@localhost flamingoserver]$ lsof -i -Pn
COMMAND     PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
chatserve 18540 zhangyl   19u  IPv4 1129031      0t0  TCP *:20000 (LISTEN)
chatserve 18540 zhangyl   27u  IPv4 1129032      0t0  TCP *:8888 (LISTEN)
chatserve 18540 zhangyl   35u  IPv4 1129033      0t0  TCP *:12345 (LISTEN)
fileserve 18552 zhangyl   25u  IPv4 1130523      0t0  TCP *:20001 (LISTEN)
imgserver 18562 zhangyl   25u  IPv4 1131971      0t0  TCP *:20002 (LISTEN)
Порт Принадлежность к сервису Назначение
20000 chatserver Порт чата
8888 chatserver Мониторинг порта чат-сервиса, который можно использовать для удалённого подключения к чат-сервису через telnet или nc для просмотра некоторой информации о состоянии чат-сервиса в реальном времени.
12345 chatserver HTTP-порт чат-сервиса. Чат-сервис поддерживает не только длительное соединение, но и короткое HTTP-соединение.
20001 fileserver Порт файлового сервиса
20002 imgserver Порт сервиса изображений

После успешного подключения вы можете ввести соответствующую команду для просмотра состояния сервера, в настоящее время реализованы только три команды, которые были показаны ранее: help, ul и su. Вы можете продолжать добавлять больше команд.

Обратите внимание: серверный код — это не только код сервера для программного обеспечения для мгновенного обмена сообщениями, но и универсальная серверная структура C++11.

Компиляция и установка клиентского ПО для ПК

Откройте Flamingo.sln в каталоге flamingoclient/ с помощью Visual Studio 2019. Это решение включает в себя три проекта:

Проект Описание
Flamingo.sln Основная программа для версии flamingo для ПК
CatchScreen Программа для захвата экрана во время чата, аналогичная функции скриншота QQ
iUpdateAuto Инструмент для автоматического обновления zip-файла на стороне клиента

Скомпилированные программы находятся в каталоге Bin, а информация о конфигурации соединения между клиентом и сервером находится в файле config\flamingo.ini. Просто откройте Flamingo.exe, чтобы запустить версию flamingo для ПК.

Компиляция и установка Android-клиента

Используйте Android Studio для открытия проекта Android в каталоге flamingoAndroid/ и скомпилируйте его, чтобы создать соответствующий файл flamingo.apk. Установите его на свой телефон Android, чтобы использовать. Настройки соединения с сервером находятся на странице настроек сервера в интерфейсе входа в систему версии для Android.

Журнал обновлений

Из-за плотного графика работы я не могу регулярно обновлять flamingo, но я обещаю продолжать поддерживать его. Чтобы просмотреть журнал обновлений, посетите:

https://github.com/baloonwj/flamingo/issues/1

Обратная связь по ошибкам

Если вы обнаружите какие-либо ошибки при использовании, вы можете связаться со мной по электронной почте: balloonwj@qq.com или посетить страницу обратной связи по ошибкам:

https://github.com/baloonwj/flamingo/issues/5.

Я решу серьёзные ошибки, такие как сбои и зависания, в течение трёх рабочих дней; другие функциональные ошибки, не влияющие на использование, будут решены в течение двух недель.

Способы связи

Если у вас возникнут проблемы при использовании этого проекта, или у вас есть какие-либо мнения или предложения относительно моего проекта, или если у вас есть хорошие идеи, вы можете общаться со мной. Добавьте меня в WeChat easy_coder или присоединитесь к технической группе QQ: 729995516.

Снимок некоторых функций

Снимок версии для ПК:

Снимок версии для Android:

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/balloonwj-flamingo.git
git@api.gitlife.ru:oschina-mirror/balloonwj-flamingo.git
oschina-mirror
balloonwj-flamingo
balloonwj-flamingo
master