Skip to content

Web and signaling server for presentation conference power by WebRTC

Notifications You must be signed in to change notification settings

ORusak/webrtc-presentation-conference-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание

Статус: В разработке. Серверная часть приложения организации конференции по показу презентаций. Сервер предназначен для

  • организации обмена данными для установления p2p связи между участниками (signaling server), согласно стандарту WebRTC.
  • также используется как web сервер, отдавая сборку клиентской части https://github.com/ORusak/webrtc-presentation-conference-app

Протокол установки связи учитывает организацию топологии "звезда" клиентской части. Обмен sdp, ice пакетами идет только собственника комнаты и конкретного участника.

Связь участников организована полностью с использованием технологии WebRTC на клиентской части участников. Включая:

  • просмотр презентации
  • видео/аудио связь
  • чат

Демо доступно по ссылке demo. Самый простой способ открыть 2 или более вкладки в Google Chrome.

Требования

  • Организация обмена пакетами через socket
  • Разделение логики обмена различными типами пакетов для лучшего управления (логирования, обработки)

Доработки

На текущий момент реализовано

  • Обмен пакетами через socket
  • Возможность клиентам полностью осуществить соединение
  • Не реализована возможность конвертации sdp пакетов в различные форматы в зависимости от клиента (Unified Plan, Plan B). Клиентская часть может работать не стабильно на разных браузерах.

Реализация сервера

  • Выделить отдельно слой обработки ошибок
  • Организовать доставку ошибок на клиент для обработки
  • Реализовать слой валидации входящих/выходящих данных контроллеров

Реализация

Сигнальный протокол

Типы сигналов:

  • init - регистрация в комнату. В рамках можно проводить операции:
  • определение типа участника, проверка собственности, регистрацию.
  • sdp - возможность обработки, передача sdp пакета
  • ice - передача ice пакета

Архитектура

  • Тип звезда
  • Центр соединения - это хозяин комнаты
  • К центру присоединяются участники комнаты
  • Весь поток данных идет через хозяина комнаты
  • Данная архитектура подразумевает маршрутизацию пакетов от участников только хозяину комнаты, от участников только хозяину.

Технологии

  • nodejs, socket
  • socket.io, server.js

Установка (доработать)

Окружение

nodejs

  • LTS версия больше 8.9.1

Настройка проекта (локально)

  • Ограничения в проекте используются simlink. Может не корректно работать на ОС windows. Если нет возможности запустить на семейство unix или mac os, то воспользуйтесь demo
  • Склонируйте репозиторий, установите зависимости
git clone https://github.com/ORusak/webrtc-presentation-conference-server.git
cd webrtc-presentation-conference-server
npm i
npm start

About

Web and signaling server for presentation conference power by WebRTC

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published