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