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

OSCHINA-MIRROR/woi-woim

Клонировать/Скачать
README.md 7.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 01:14 4049610

WOIM — это основанная на Netty и Spring Boot распределённая, встраиваемая, компонентная, высоконастраиваемая и расширяемая Java-платформа для мгновенных сообщений, которую можно легко интегрировать в существующую пользовательскую систему для предоставления услуг мгновенных сообщений. Она также может служить системой push-уведомлений, выступая в качестве моста между двумя сторонами.

Особенности

  1. Распределённая. Поддерживает распределённое кластерное развёртывание, позволяя горизонтально масштабироваться при недостаточной производительности одного узла.
  2. Встраиваемая. Требуется только реализовать собственную логику аутентификации соединения, чтобы бесшовно интегрировать WOIM в существующую систему.
  3. Компонентная. От управления соединениями до обработки каналов и бизнес-логики — всё разделено и может быть собрано или разобрано.
  4. Высоконастраиваемая. Неинтрузивный подход позволяет выполнять вторичную разработку и интеграцию функций. Можно заменить или настроить встроенные компоненты и бизнес-логику, создавая идеально подходящую под ваши нужды систему мгновенных сообщений с помощью WOIM.
  5. Расширяемая. Встроена логика сериализации и десериализации, позволяющая настраивать типы сообщений. После настройки соответствующей логики обработки вы можете отправлять клиентам любые настраиваемые типы сообщений, включая личные сообщения, групповые сообщения и системные уведомления.
  6. Полноценные функции IM. Включает личные сообщения, групповые чаты, офлайн-сообщения и управление сеансами (из соображений конфиденциальности нет встроенной функции роуминга, но поддерживается вторичная разработка). Поддерживает различные типы сообщений (текст, голос, изображения, файлы) и многопользовательский вход.
  7. Один порт, несколько протоколов, горячая замена. Поддерживает несколько транспортных протоколов, по умолчанию используя protobuf и WebSocket. Позволяет расширять собственные протоколы и переключаться между ними на одном порту, а также заменять протоколы без остановки работы системы.

Быстрый старт

  • Инициализация базы данных:

    • Метод 1: настройка в файле конфигурации. По умолчанию используется режим NONE, который не инициализирует базу данных. Доступны режимы NEW (удаляет старые таблицы и создаёт новые) и SAFE (создаёт таблицы, если они не существуют).
    woi:
      woim:
        db-initialization-mode: SAFE
    • Метод 2: выполнение SQL-скрипта. Выполните предоставленный SQL-скрипт.
  • Зависимости:

    Сервер Maven:

        <dependency>
            <groupId>zone.czh</groupId>
            <artifactId>woi-woim</artifactId>
            <version>1.0.0</version>
        </dependency>

    Клиент Maven:

        <dependency>
            <groupId>zone.czh</groupId>
            <artifactId>woi-woim-client</artifactId>
            <version>1.0.0</version>
        </dependency>

    Gradle:

        implementation 'zone.czh:woi-woim-client:1.0.0'
  • Использование и разработка: Подробные инструкции см. в модуле example.

    Сервер

    • Быстрая разработка:
      1. Добавьте аннотацию для включения WOIM:
      @SpringBootApplication
      @EnableWOIM //todo enable woim
      public class WoiWOIMExampleApplication {
          public static void main(String[] args) {
              SpringApplication.run(WoiWOIMExampleApplication.class, args);
          }
      }
      1. Реализуйте WOIMConfigurator:
      //or implements WOIMConfigurator
      @Component
      public class ExampleConfigurator extends DefaultWOIMConfigurator{
          @Override
          public WOIMVerifier getChannelVerifier() {
              //todo 配置自己的连接授权方法,适配自己的用户系统
              return null;
          }
      }
    • Кластеризация:
      1. Создайте файл конфигурации:
      woi:
        woim:
          server-addr: 127.0.0.1:8080,127.0.0.1:8081,127.0.0.1:8082

    Клиент

    • Быстрое начало:
      //init client
      WOIMClient client = new WOIMClient.Builder().setInetHost("127.0.0.1")
                   .setPort(6666)
                   .setEventListener(new CustomEventListener())
                   .setConfigurator(new CustomConfigurator())
                   .build();
      //auth
      client.authSafely("token",null,null);
      //send message
      client.push(new PrivateMsg());
      //the customized message you pushed must be serializable!!!

Документация

В настоящее время подробной документации нет, рекомендуется обратиться к модулю example.

Скриншоты

Android-клиент

(Собственное приложение для Android, разработанное на основе этой платформы. При подходящих условиях может быть рассмотрено для открытого исходного кода.)

Изображения не включены. Рабочий стол

В настоящее время не разработан графический интерфейс для рабочего стола.

Репозиторий github gitee

Контакты Email: woimail@163.com woi.cmail@gmail.com

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

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

1
https://api.gitlife.ru/oschina-mirror/woi-woim.git
git@api.gitlife.ru:oschina-mirror/woi-woim.git
oschina-mirror
woi-woim
woi-woim
main