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

OSCHINA-MIRROR/balloonwj-flamingo

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

Flamingo

Введение

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

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

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

  • Регистрация пользователей.
  • Вход пользователей в систему.
  • Поиск пользователей и групп.
  • Добавление пользователя в список друзей и присоединение к группам.
  • Отображение списка друзей, списка групп и списка последних сеансов.
  • Общение с одним другом (включая отправку текстов, эмоций, изображений, встряхивание окна и офлайн-файлы и т. д.).
  • Общение в группах (включая отправку текстов и эмоций и т. д.)
  • Отправка сообщений нескольким друзьям или группам (это отличается от общения в группах).
  • Изменение пароля.
  • Изменение профиля (включая никнейм, подпись, пользовательский аватар и т.д.).
  • Автоматическое обнаружение новой версии и обновление в версии для Windows PC.
  • Автоматическое переподключение при отключении.
  • Некоторые другие полезные функции, такие как три режима списка друзей, анимация при выходе друга в онлайн, история сообщений чата, автоответ на сообщения чата во время общения и т. д. Вы можете открыть для себя ещё больше удивительных функций в Flamingo.

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

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

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

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

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

​ Чат-сервер Flamingo будет использовать базу данных mysql. База данных по умолчанию называется «flamingo». Имя базы данных, учётная запись пользователя (включая имя пользователя, пароль и т. д.), настроено в файле flamingoserver/etc/chatserver.conf. Вы можете изменить эту конфигурацию по своему усмотрению.

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

Сервер Flamingo использует четыре таблицы базы данных, показанные ниже:

Имя таблицы Использование
t_user хранение учётных записей пользователей
t_user_relationship хранение информации о взаимоотношениях пользователей и членов групп
t_chatmsg хранение сообщений чата
Компиляция
  1. Войдите в каталог flamingoserver/, затем введите команды ниже:

    cmake .

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

  2. Выполните команды ниже, чтобы сгенерировать исполняемые программы: chatserver, fileserver, imgserver.

    make
    ``` Регистрация, вход в систему и общение в чате, а также другие основные функции обмена мгновенными сообщениями |
    | Файловый сервер | для передачи файлов в автономном режиме при общении и обновлении ПК |
    | Сервер изображений | для загрузки и скачивания аватаров пользователей и отправки изображений в чате |
    
    
    
    ###### Как запустить серверы
    
    **chatserver**, **fileserver** и **imgserver** независимы друг от друга. Вы можете запустить один из них в оболочке Linux или запустить в режиме демона. Используйте следующие команды для запуска их в режиме демона:
    
    ```shell
    ./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 Порт для мониторинга внутреннего состояния chatserver. Вы можете использовать команды telnet или nc для подключения к chatserver, чтобы получить некоторую информацию о реальном времени и статусе chatserver
12345 chatserver HTTP-сервисный порт для chatserver. Chatserver поддерживает как длинные TCP-соединения, так и короткие HTTP-соединения
20001 fileserver Порт для передачи файлов
20002 imgserver Порт для передачи изображений чата или аватаров пользователя

Мы можем использовать команду Linux nc для подключения к порту 8888 chatserver в таблице выше в форме nc -v ip port. Здесь порт равен 8888, а опция -v заставляет команду nc отображать более подробную информацию. Вот использование:

[zhangyl@localhost flamingoserver]$ nc -v 127.0.0.1 8888
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to 127.0.0.1:8888.
1. help-show help info
2. ul-show online user list
3. su-show userinfo specified by userid: su [userid]
ul
No user online.
su
please specify userid.
help
1. help-show help info
2. ul-show online user list
3. su-show userinfo specified by userid: su [userid]

Когда вы успешно подключитесь к chatserver с помощью nc, вы можете ввести любую из команд в данном списке. Я реализовал только три команды в качестве примеров: help, ul, su. Вы можете добавить больше функциональных команд, если вам нужно.

Подсказка: Код сервера — это не только исходный код сервера обмена мгновенными сообщениями, но и мощная сетевая структура, написанная на C++ 11. Вы сможете извлечь из неё больше пользы, если изучите её подробнее.

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

Всё, что вам нужно сделать, это просто открыть файл Flamingo.sln в каталоге flamingoclient/ с помощью Visual Studio 2019 и скомпилировать его. Решение включает в себя три проекта, показанных в таблице ниже:

Название проекта Использование
Flamingo Основная исполняемая программа клиента Flamingo для ПК
CatchScreen Инструмент для захвата экрана в окне чата
iUpdateAuto Распаковка загружаемых файлов при обновлениях

​Когда компиляция завершена успешно, исполняемые программы будут находиться в каталоге flamingoclient\Bin. А файл конфигурации, содержащий настроенные строки, находится в файле flamingoclient\Bin\config\flamingo.ini. Запустите Flamingo.exe и получайте удовольствие!

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

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

Журнал изменений

Боюсь, что я не смогу поддерживать Flamingo регулярно, потому что очень занят своей работой. Но обещаю, что буду постоянно поддерживать Flamingo.

Журнал изменений см. здесь:

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

Отчёт об ошибках

Если у вас есть какие-либо вопросы, вы можете связаться со мной, отправив электронное письмо на адрес balloonwj@qq.com. Также вы можете сообщить о любых ошибках на странице Отчёта об ошибках, её ссылка — https://github.com/baloonwj/flamingo/issues/5.

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

Контакты

Наконец, если у вас есть предложения или хорошие советы, добро пожаловать ко мне. Пользователи материкового Китая могут связаться со мной, присоединившись к моей группе QQ (729995516) или связавшись с моим публичным аккаунтом в веб-чате (『easyserverdev』). Также вы можете отправлять мне электронные письма, мой адрес электронной почты — balloonwj@qq.com. Я искренне жду Вас.

Снимок экрана с функциями ниже:

Снимок flamingo Снимок flamingo Снимок flamingo Снимок flamingo Снимок flamingo Снимок flamingo Снимок flamingo Снимок flamingo Снимок flamingo

Версия для Android

Снимок flamingo Снимок flamingo Снимок flamingo Снимок flamingo Снимок flamingo

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

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

Введение

Flamingo — это высокопроизводительное легковесное открытое программное обеспечение для мгновенного обмена сообщениями. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

Загрузить больше
Больше нет результатов для загрузки
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