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

Другие вопросы по тегам