DataChannel в webRtc javascript

Я сталкиваюсь с проблемой интеграции видео и чата в WebRtc используя JavaScript. Я использую этот пример

https://github.com/oney/react-native-webrtc-server/blob/master/index.html

видео работает нормально, но при отправке сообщений не происходит ни получения ошибки!!!! Как канал передачи данных поделился в приведенном выше примере этими функциями:

Line #115 to 142 of above link
if (pc.textDataChannel) {
  return;
}
var dataChannel = pc.createDataChannel("text");

dataChannel.onerror = function (error) {
};

dataChannel.onmessage = function (event) {
  console.log('open state2')

  var content = document.getElementById('textRoomContent');
  content.innerHTML = content.innerHTML + '<p>' + socketId + ': ' + event.data + '</p>';
};

dataChannel.send = function (event) {
  console.log('open state2')
  exchange(event)
};

dataChannel.onopen = function () {
  console.log('open state')
  var textRoom = document.getElementById('textRoom');
  textRoom.style.display = "block";
};

dataChannel.onclose = function () {
};
pc.textDataChannel = dataChannel;

при отправке сообщения его использует:

pc.textDataChannel.send(text);//Line #218 of above link

Что именно я должен реализовать, чтобы это работало, я думаю, что это послание - ничто, поэтому сообщение терпит неудачу, и видео работает

1 ответ

Вы должны вызвать createDataChannel перед createOffer.

Более простой способ - создать dataChannel, как только вы создадите RTCPeerConnection.

var pc = new RTCPeerConnection(configuration);
var dataChannel = pc.createDataChannel("text");
...

Затем createOffer включит описание канала данных, в SDP вы должны увидеть что-то вроде:

m=application 9 DTLS/SCTP 5000
...
a=sctpmap:5000 webrtc-datachannel 1024
Другие вопросы по тегам