Skip to content

Nutr1k/LiteCall

Repository files navigation

VoIP-клиент

2025-01-20.14-27-32.mp4

Оглавление


Описание

На данный момент мессенджер реализован на связке WPF+SignalR Core+ASP.NET Core.

На первом этапе работы был выбран фреймворк WCF, позже он был заменён на SignalR.

11.03.2022 Первая рабочая SignalR версия клиента

Выпущена первая рабочая версия SignalR сервера, на ней отсутствуют проблемы которые были на WCF.

Проблемы WCF
  • При проверке в глобальной сети столкнулись с серьезными проблемами тайм-аута(когда вы хотите использовать дуплексный сервис в течение длительного времени). Нам пришлось периодически совершать сервисные вызовы, чтобы поддерживать клиентские соединения
  • Нет автоматической обработки разрыва соединений, приходиться при каждом обратном вызове отлавливать ошибки через try catch{ } и удалять клиентов с которыми потеряно соединение (на котором выдало исключение)
  • Сложная интеграция с клиентом т.к. VS 2022 не поддерживает нормальную генерацию proxy(прокси), а использовать SVCutil затратно по времени

Окно авторизации

Project Image

Главная страница

Project Image

Окно подключения к серверу

Project Image

Страница сервера

Project Image

Окно сервера

Project Image

Технологии

Client

.Net SignalR ReactiveUI Naudio Newtonsoft

Authentication server (also main server)

Asp.Net SqlLite.Net EntityFramework.Net JwtBearer

Chat-server

Asp.Net SignalR

Серверная часть LiteCall

Серверная часть чата реализована на ASP.NET Core SignalR

Задачи которые реализованы Сервером чата(SignalRServer):

  • Текстовый групповой чат
  • Голосовой чат(стабильная работа более чем с 2-мя пользователями)
  • Создание комнат(групп) для общения
  • Автоматическое удаление пустых групп при отключении пользователей
  • Автоматическое удаление из групп при отключении
  • Контроль имён пользователей(уникальность имён)
  • Валидация JWT

Задачи которые реализованы Сервером Авторизации(ServerAuthorization):

  • Генерация JWT
  • Шифрование JWT токена с помощью RSA256
  • Регистрация пользователей
  • Получения списка серверов и информации о них
Подробнее про авторизацию
Пароль при передаче шифруются однонаправленным алгоритмом SHA-1, целостность передачи важных данных гарантирует Json Web Token. Json Web Token зашифрован с помощью алгоритма SHA-256

Используемая JWT конструкция

В полезной нагрузке расположена информация об имени пользователя,его роли, времени действия токена.
Project Image

Установка

Release

1.Установить клиент - LiteCall.exe
2.Запустить сервера - LC-servers.exe (\LT-servers\LiteCallServer\LC-servers.exe)
3.IP для подключения по стандарту будет localhost:43891

YouTube


Недобавленные возможности/баги:

  • Невозможность подключения больше чем 2 человек в голосовой чат [03.06.22 исправлено]
  • Отсутствие нормального отключения пользователя от сервера [11.03.22 исправлено]
  • Отсутствие нормальной валидации [10.03.22 исправлено]

Ссылки на авторов

Клиентская часть:

Костя

Серверная часть:

Артём

About

VoIP-клиент

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages