RTCIceTransport: свойство state
Чтение только свойство state интерфейса RTCIceTransport возвращает текущее состояние транспортного средства ICE, поэтому вы можете определить состояние сбора ICE, в котором в настоящее время работает агент ICE.
Это отличается от gatheringState, которое указывает только на то, выполняется ли в настоящее время сбор ICE. Это также отличается от RTCPeerConnection.connectionState, которое агрегирует состояния по всем RTCIceTransport, используемым каждым RTCRtpSender и каждым RTCRtpReceiver на всем соединении.
Значение
Строка, значение которой является одним из следующих:
"new"-
В настоящее время
RTCIceTransportсобирает локальные кандидатов или ожидает, что удалённое устройство начнёт передавать удалённые кандидатов, или то и другое. В этом состоянии проверка кандидатов на поиск тех, которые могут быть приемлемыми, ещё не началась. "checking"-
По крайней мере, один удалённый кандидат был получен, и
RTCIceTransportначал проверять пары удалённых и локальных кандидатов, чтобы попытаться определить жизнеспособные пары, которые могут быть использованы для установления соединения. Имейте в виду, что сбор локальных кандидатов может всё ещё продолжаться, и аналогично удалённое устройство также может всё ещё собирать собственных кандидатов. "connected"-
Была найдена и выбрана жизнеспособная пара кандидатов, и
RTCIceTransportсоединил двух участников вместе с помощью этой пары. Однако всё ещё существуют пары кандидатов для рассмотрения, и на одном или обоих устройствах может всё ещё продолжаться сбор.Транспорт может вернуться из состояния
"connected"в состояние"checking", если любой участник решит отменить согласие на использование выбранной пары кандидатов, и может вернуться к"disconnected", если не осталось кандидатов для проверки, но один или оба клиента всё ещё собирают кандидатов. "completed"-
Транспорт закончил сбор локальных кандидатов и получил уведомление от удалённого участника о том, что больше кандидатов отправлять не будет. Кроме того, все пары кандидатов были рассмотрены, и одна пара была выбрана для использования. Если проверки согласия завершатся неудачей для всех успешных пар кандидатов, состояние транспорта изменится на
"failed". "disconnected"-
Агент ICE определил, что соединение для этого
RTCIceTransportбыло потеряно. Это не состояние ошибки (это"failed"). Значение"disconnected"означает, что произошла временная проблема, которая разорвала соединение, но она должна автоматически разрешиться, без необходимости каких-либо действий со стороны вашего кода. См. Состояние отключения для получения дополнительных сведений. "failed"-
RTCIceTransportзавершил процесс сбора, получил уведомление от удалённого участника о том, что больше кандидатов не будет, и завершил проверку пар кандидатов, не найдя успешно пары, которая является одновременно действительной и для которой может быть получено согласие. Это конечное состояние, указывающее, что соединение не может быть установлено или поддерживается. "closed"-
Транспорт завершил работу и больше не реагирует на запросы STUN.
Примечания по использованию
Если происходит перезапуск ICE, процесс сбора кандидатов и проверки соединений запускается заново; это приведёт к переходу из состояния "connected" , если перезапуск произошёл, когда состояние было "completed". Если перезапуск произошёл во время временного состояния "disconnected", состояние переходит в "checking"
Состояние отключения
"disconnected" — это временное состояние, которое возникает, когда соединение между двумя участниками прерывается таким образом, что инфраструктура WebRTC может автоматически исправить его, как только соединение станет снова доступным. Это не состояние ошибки. Вместо этого вы можете рассматривать "disconnected" как аналогичное "checking", но с добавлением информации о том, что соединение работало, но в данный момент не работает.
У каждого пользовательского агента и платформы могут быть свои сценарии, которые могут привести к состоянию "disconnected". Возможные причины включают:
- Интерфейс сети, используемый соединением, вышел из строя.
- Запросы STUN, отправленные удалённому устройству, неоднократно оставались без ответа.
Состояние "disconnected" также может возникнуть, когда транспорт завершил проверку всех существующих пар кандидатов и не нашёл пары, которая будет работать — или была найдена действительная пара, но отклонена из-за отказа в согласии на использование этой пары. В этом сценарии транспорт всё ещё продолжает собирать кандидатов и/или ожидать отправки кандидатов удалённым участником.
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
state |
75 | 13 | 125 | 62 | 11 | 75 | 125 | 54 | 11 | 11.0 | 75 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCIceTransport/state