Red5 видеочат заморозить
У меня проблема с видеочатом на сервере red5. Все работает нормально, но если некоторые люди закрывают браузер, а не нажимают кнопку "Остановить чат", последний поток из их потока. Так это выглядит как замерзающий поток. Есть ли возможность убить такой поток?
1 ответ
Варианта нет, но вы можете реализовать в приложении Red5 метод, например, реализовать метод:
/**
* Notification that a broadcasting stream is closing.
*/
@Override
public void streamBroadcastClose(IBroadcastStream stream) {
//Notify all clients
}
Затем отправьте сообщение по протоколу RTMP всем клиентам, которых покинул пользователь, и затем вы можете отреагировать в пользовательском интерфейсе на стороне клиента и правильно удалить / зачеркнуть тот экран пользователя, который ушел.
Себастьян
Проблема с остановкой соединений, когда сеанс внезапно прерывается (закрытием браузера или потерей интернет-соединения), называется призрачными соединениями.
Вы можете внедрить систему ping между клиентами и сервером, чтобы определить, когда клиенты больше не присутствуют, и сгенерировать разрыв со стороны сервера.
Также на клиентском сервере отсоединения следует уведомлять других клиентов, а видео пользователя должно быть скрыто (чтобы не показывать замороженный кадр).
Обнаружение призрачного соединения и удаление отключенных пользователей уже реализовано в популярных приложениях видеочата. Вы можете проверить http://www.videowhisper.com/demos/conference/ чтобы увидеть, работает ли он в описанном вами сценарии.
Вы также можете протестировать с Wowza Streaming Engine, чтобы определить, связана ли проблема с Red5.