繁体   English   中英

添加文字聊天到webRTC音频/视频聊天

[英]Add text chat to webRTC audio/video chat

我使用本教程与webRTC创建了一个音频/视频聊天,现在我想添加一个文本聊天; 我阅读了有关频道的信息,我查看了这个例子 ,但由于该示例不使用套接字,我仍然有一些问题。

我是否需要创建另一个频道来传输文本? 我应该使用与音频/视频相同的频道吗? 如果是这样,这对流媒体的质量有影响吗? 有人可以告诉我一些指导方针来开始添加聊天吗?

提前致谢!

更新:

我添加了这段代码

function doCall() {
    console.log('Sending offer to peer');
    //create channel for chat
    var dataChannelParams = {
        reliable: true,
        ordered: true
    };
    var sendChannel = pc.createDataChannel("chat", dataChannelParams);

    pc.ondatachannel = function(event) {
        var receiveChannel = event.channel;
        receiveChannel.onmessage = function(event) {
            console.log("ricevo questo messaggio: " + event.data);
            document.querySelector("textarea#receiveText").innerHTML = event.data;
        };
    };

    document.querySelector("button#sendData").onclick = function() {
        var data = document.querySelector("textarea#inputText").value;
        console.log("invio questo messaggio: " + data);
        sendChannel.send(data);
    };

    pc.createOffer(setLocalAndSendMessage, handleCreateOfferError);
}

我创建了两个textarea对象,一个带有发送按钮,另一个带有文本。 但是,它只能在一个方向上工作:当我在同一页面上有2个pcs时,如果我将文本从pc1发送到pc2它可以工作,但是如果我将文本从pc2发送到pc1则不然。 你知道为什么吗?

是的,使用相同的连接,因为它不会影响质量,只不过是单独的连接。

只需添加:

var dataChannel = yourPeerConnection.createDataChannel("chat");

在你调用createOffer之前,那就是你的数据通道。

更新:

请注意, ondatachannel仅在未创建数据通道的ondatachannel下触发。

每个数据信道是双向的,所以只需添加onmessage到创建的dataChannel

var dataChannel = pc.createDataChannel("chat", dataChannelParams);

dataChannel.onmessage = function(event) {
    document.querySelector("textarea#receiveText").innerHTML = event.data;
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM