2

webRTC データチャネルを使用して (2 つのクロム タブで) 2 つのローカル ピア間でデータを交換しようとしていますが、常に「接続中」状態のままです。ただし、すべてスムーズに動作するのはFirefoxです。

ここで同様の質問を見つけました-webRTC datachannel is not working in chrome62 but still no working solution

ここに私のコードスニペットがあります:

let DataChannel
const iceServers = {
"iceServer" : [
    {"urls" : "stun:stun.services.mozilla.com"},
    {"urls" : "stun:stun.l.google.com:19302"}
]}

socket.on('ready', () => {
if(isCaller) {
    console.log('caller is ready to create offer')
    rtcPeerConnection = new RTCPeerConnection(iceServers)
    DataChannel = rtcPeerConnection.createDataChannel(RoomNumber, {negotiated: true, id:0})
    DataChannel.onmessage = event =>{
        CallName.innerText = event.data
    }
}})

socket.on('offer', (event) => {
if(!isCaller) {
    console.log( 'ready to create answer')
    rtcPeerConnection = new RTCPeerConnection(iceServers)
    DataChannel = rtcPeerConnection.createDataChannel(RoomNumber, {negotiated: true, id:0})
    DataChannel.onmessage = event =>{
        CallName.innerText = event.data
    }
}})

SetCallName.onclick = () => {
if (InputCallName.value ===""){
    alert("please enter a call name")
}
else{
    console.log(InputCallName.value)
    DataChannel.send(InputCallName.value)
    CallName.innerText = InputCallName.value
    // DivCallName.innerHTML = InputCallName.value

}}

ボタンをクリックすると、次のエラーが発生します。

Uncaught DOMException: 「RTCDataChannel」で「send」を実行できませんでした: RTCDataChannel.readyState は HTMLButtonElement で「開いていません」

ここでも、すべてが Firefox で問題ありません。chrome://webrtc-internals/機能があるため、現在 chrome を使用していました

4

0 に答える 0