Настройка cdn

temonich

New Member
Добрый день

У нас сейчас один сервер. Вещание через webrtc и hls. Проигрывание так же.
Авторизация сделана через rest backend

database.yml такой:

YAML:
apps:
  defaultApp: {name: defaultApp, key: defaultApp, url: 'http://backend/wcs',
    handler: com.flashphoner.server.client.handler.wcs4.WCS4Handler, callback: com.flashphoner.server.client.handler.wcs4.WCS4CallbackHandler}
  flashStreamingApp: {name: flashStreamingApp, key: flashStreamingApp, url: 'http://backend/wcs',
    handler: com.flashphoner.server.client.handler.wcs4.FlashStreamingHandler, callback: com.flashphoner.server.client.handler.wcs4.FlashStreamingCallbackHandler}
restMethods:
  defaultApp: [publishStream, connect, unPublishStream, StreamStatusEvent]
  flashStreamingApp: [publishStream, connect, unPublishStream, StreamStatusEvent]

Добавляем сейчас еще 2 сервера: transcoder и edge

Вопросы:
1. database.yml должен быть на edge и origin условно одинаковый? Т.е. авторизацией занимается и edge и origin, а не кто-то один?
2. Если я хочу запрещать просмотр с origin и вещание на edge, мне нужно это реализовывать так же у себя на backend'е?
3. Какие дополнительные restMethods нужно реализовать для такой схемы?
 

Max

Administrator
Staff member
Добрый день.
1. database.yml должен быть на edge и origin условно одинаковый? Т.е. авторизацией занимается и edge и origin, а не кто-то один?
Если Вы реализуете авторизацию через бэкенд, то REST хуки должны отправлять и origin, и edge сервера, т.к. пользователи для публикации и просмотра присоединяются к серверам независимо от их роли. Т.е. origin не знает о пользователях, которые подключились к edge для просмотра, для него клиентом является edge.
Также доступ зрителей к потокам можно ограничить при помощи CDN ACL. Посмотрите эту статью с примерами управления ключами доступа. В этом случае Ваш бэкенд должен передать на клиента при подключении зрителя к edge валидные ключи доступа к потоку.
2. Если я хочу запрещать просмотр с origin и вещание на edge, мне нужно это реализовывать так же у себя на backend'е?
3. Какие дополнительные restMethods нужно реализовать для такой схемы?
Да, Вы должны реализовать дополнительно следующие методы:
- publishStream - на Origin должен вернуть 200 OK, на Edge 403 Forbidden
- playStream - на Origin должен вернуть 403 Forbidden, на Edge 200 OK
Разумеется, нужно каким-то образом (например, при помощи кастомных данных) контролировать, какой именно пользователь подключился, чтобы оставить возможность проигрывания с Edge для целей тестирования.
 
Top