/VKanave

Чат мессенджер. ВКанаве для вас и ваших родных :)

Primary LanguageC#

🌿 VKanave 🌿

Добро пожаловать в прекрасную ВКанаву.

интерфейс: https://github.com/LosevArtyom/VKanave/tree/master/Assets

Реализовано:

  • Отправка и принятие данных
    • из NetworkStream читаются данные размером в NetMessage.BUFFER_SIZE. Далее данные добавляются в массив. После этого они десериализируется в дочерний объект NetMessage
  • Бинарная сериализация объектов
    • Объект NetMessage хранит массив байт (_buffer), в который записывается информация о сетевом пакете. Например, для записи числа используется метод Write(Int32), который используется Write(Byte[])
    protected void Write(byte[] bytes)
      {
          int size = bytes.Length;
          Resize(size);
          for (int i = 0; i < bytes.Length; i++)
          {
              _buffer[_position + i] = bytes[i];
          }
          _position += bytes.Length;
      }
  • MVVM
  • Anti SQL Injection
  • Регистрация и авторизация
  • Настройка личного профиля
    • Изменение отображаемого имени
  • Отправка и получения сообщений
  • Флаги сообщений, которые меняются в реальном времени
    • Удаление сообщений
    • Показывает прочитали сообщение или нет в реальном времени
  • Удобный просмотр полных логов
    • Можно отключить нежелаемые логи здесь

Компиляция

Android (client)

.bat file

dotnet publish -c release -r ubuntu.20.04-x64

.bat file

Ubuntu 20.04-x64 (server)

dotnet publish -c release -f:net8.0-android

.bat file

Запуск сервера

Note

Установка на Ubuntu.20.04-x64

Устанавливаем mysql-server

sudo apt install mysql-server

Устанавливаем и настраиваем apache и phpmyadmin. Открываем порты и выдаём права доступа программе.

sudo apt install vsftpd
sudo ufw allow 20,21,990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw enable
sudo chmod 777 VKanave

Запускаем (с использованием мультиплексора)

tmux new -s vkanave
./VKanave

Результат: