Edge DTLS Handshake не завершается (ORTC)
Я пытаюсь использовать Edge ORTC для связи в реальном времени с другими веб-браузерами. Я успешно выполнил эту работу, используя одноранговые соединения, но у меня возникли проблемы после добавления промежуточного шлюза.
Рукопожатие DTLS по какой-то причине завершается неудачно, когда я начинаю вызов с помощью Edge (контроль), я включил wireshark, чтобы посмотреть, выполнялись ли какие-либо сообщения DTLS, но ни одно из них не было "прослушано" (хотя это может быть проблемой wireshark). Если я отвечаю от Edge (контролируемого), соединение работает (даже с межсетевым интерфейсом).
Важно отметить, что ICE-соединение успешно устанавливается в каждом случае, кажется, что по какой-то причине Edge не инициирует рукопожатие DTLS, и я не могу понять, что является триггерной точкой (я даже получаю статус "проверки" на событие "ondtlsstatechange" для транспортного объекта dtls). Примерно через 30 секунд неудачное событие срабатывает!
У кого-то еще есть эта проблема? Что может быть причиной этой проблемы?
Спасибо..
1 ответ
Я нашел решение..
Ну, в основном мой шлюз был пассивным узлом, и я запускал транспорт DTLS с ролью "auto", и, поскольку Edge был "контролирующим", он автоматически устанавливает его как "сервер". Таким образом, в основном оба конца были "серверами", и DTLS Handshake не отправлялось. Установка удаленной роли в качестве "сервера" решила проблему:)
remoteDtlsParameters.role = "server";
dtlsTransport.start(remoteDtlsParameters);
Более подробную информацию об удаленных параметрах можно найти здесь:
https://msdn.microsoft.com/en-us/library/mt502488(v=vs.85).aspx