Это RTCPeerConnection.signalingState.Возможные значения:
- стабильный - исходное состояние.В настоящее время не происходит обмена предложением / ответом SDP
- have-local-offer - локальная сторона соединения локально применила предложение SDP
- have-remote-offer - удаленная сторонаподключение локально применило предложение SDP
- have-local-pranswer - удаленное предложение SDP применено, а локально применен pranswer SDP
- have-remote-pranswer - локальный SDP имеетбыл применен, а удаленный SDP-сервер применен удаленно
- закрыт - соединение закрыто
Вы видите процесс согласования WebRTC на рисунке, который я добавил ниже.![enter image description here](https://i.stack.imgur.com/tpeza.jpg)
DOMException: не удалось установить локальный ответ sdp: вызван в неправильном состоянии: kStable означает, что «ваш браузер» не получает никаких предложений / ответов SDP, который вы видите на картинке выше.Это может зависеть от несовместимости браузера с реализацией Scaledrone WebRTC-Wrapper или, например, от некоторых проблем STUN, которые также относятся к реализации Scaledron.
Очень часто сообщается, что при первом использовании «нового» идентификатора канала он работает только один раз, а после этого никогда больше не запрашивает идентификатор.
Мы предполагаем, что в процессе запроса подтверждения личности существует "счет" (очередь операций) для аутентифицированных идентификаторов ( целевое значение идентификатора однорангового узла * 1035)*) который чрезвычайно нестабилен - см. - https://www.w3.org/TR/webrtc/#dom-rtcconfiguration-peeridentity.
function startWebRTC(isOfferer)
{
pc = new RTCPeerConnection(configuration);
var identity = pc.peerIdentity;
...
...
if (identity)
{
alert("Identity of the peer: idp='"
+ identity.idp + "'; assertion='"
+ identity.name + "'");
}
else
{
alert("Identity of the peer has not been verified");
}
...
...
}
Где "конфигурация":
const configuration = {
iceServers: [{
urls: 'stun:stun.l.google.com:19302'
}]
};
![Debugger](https://i.stack.imgur.com/Ubs7j.png)
https://www.w3.org/TR/webrtc/ 4.4.1.2 Поставить в очередь операцию: "... объект RTCPeerConnection имеет очередь операций [[Operations]], которая обеспечивает одновременное выполнение только одной асинхронной операции в очереди.Если последующие вызовы выполняются в то время, когда возвращенное обещание предыдущего вызова все еще не выполнено, они добавляются в очередь и выполняются, когда все предыдущие вызовы завершены и их обещания исчерпаны ... "... см. Следующие шаги...
Но оценить это крайне сложно без прямого анализа инструментов.Реализация оболочки Scaledrone WebRTC чрезвычайно чувствительна .
Нам нужно проверить RTCPeerConnection.iceConnectionState, RTCPeerConnection.peerIdentity, RTCPeerConnection.localDescription, RTCPeerConnection.remote.signalingState, ....
Я провел несколько сравнений тестов с web-сокетами nodejs с Firefox-Quantum-65.0 x64 и Chrome-71.0, которые вы можете увидеть здесь:
![enter image description here](https://i.stack.imgur.com/srwhf.jpg)
Вы видите, что в этом есть большая разница.Лучший аксель