首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RTCPeerConnection.createDataChannel()和RTCPeerConnection.onDataChannel()之间的区别

RTCPeerConnection.createDataChannel()和RTCPeerConnection.onDataChannel()之间的区别
EN

Stack Overflow用户
提问于 2015-04-22 07:37:03
回答 1查看 1.8K关注 0票数 1

我最近一直在玩webRTC,我正在创建一个抽象层,以便通过mesh网络体系结构轻松地获得多个客户端通信。

我的问题是如何创建数据通道。我现在做以下几件事:

代码语言:javascript
复制
var pc = new RTCPeerConnection(null, {optional: []});

var conn = pc.createDataChannel("testchannel", {});
var conn2 = null;
conn.onmessage = function(evt){
    console.log("onmessage1");
};

pc.ondatachannel = function (event) {
    conn2 = event.channel;
    event.channel.onmessage = function(evt){
        console.log("onmessage2");
    };
};

这就使得两个客户端之间出现了两个全双工通道。也就是说,调用conn.send("message")将导致onmessage1,而调用conn2.send("message")将导致onmessage2。这是正常的行为还是我的设置有什么问题?

关于一些额外的信息,我正在使用Chrome42和adapter.js进行测试。

EN

回答 1

Stack Overflow用户

发布于 2015-04-22 11:35:50

  • 创建数据通道是主动的,而数据通道是被动的。
  • 调用者将调用createdatachannel,它将返回一个rtcdatachannel对象,该对象以后可以使用它自己的事件(onmessage/onopen/onclose)发送对象和其他东西。
  • 被调用者将确保将一个函数附加到相应的对等连接的ondatachannel事件,该事件将从事件中提取rtcdatachannel对象( mychannel = event.channel )。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29790784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档