首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RTCDataChannel不工作iOS

RTCDataChannel不工作iOS
EN

Stack Overflow用户
提问于 2015-05-08 13:16:36
回答 2查看 2K关注 0票数 2

我使用的是RTCDataChannel。但是我通过通道发送的消息不会在另一个对等点接收到。

代码如下:

代码语言:javascript
复制
        let audioConstraint : RTCPair = RTCPair(key: "OfferToReceiveAudio", value: "true")
        let videoConstraint : RTCPair = RTCPair(key: "OfferToReceiveVideo", value: "true")
        let dtlsConstraint : RTCPair = RTCPair(key: "DtlsSrtpKeyAgreement", value: "true")
        let mediaContraints : RTCMediaConstraints = RTCMediaConstraints(mandatoryConstraints: [audioConstraint, videoConstraint], optionalConstraints: [ dtlsConstraint])

        RTCPeerConnectionFactory.initializeSSL()
        peerConnection = peerConnectionFactory.peerConnectionWithICEServers(servers, constraints: mediaContraints, delegate: self)

        dataChannels = peerConnection?.createDataChannelWithLabel(channelName,config: nil)
        dataChannels?.delegate = self


        var message : NSData = NSData(base64EncodedString: "helloo")
        var buffer : RTCDataBuffer = RTCDataBuffer(data: message, isBinary: true)
        dataChannels?.sendData(buffer)
EN

回答 2

Stack Overflow用户

发布于 2016-02-02 06:19:42

你解决了吗?两个对等体中的一个应创建数据通道,另一个应将接收到的数据通道对象附加到其数据通道对象。发起方应在发送offer之前创建数据通道。希望这能对你有所帮助

票数 3
EN

Stack Overflow用户

发布于 2016-05-23 06:53:49

我也有同样的问题,直到我将选项设置为不为零。如果我跳过steamId,它就不会发送。即使通道是开放的。

代码语言:javascript
复制
RTCDataChannelInit *dataInit = [[RTCDataChannelInit alloc] init];
dataInit.isNegotiated = YES;
dataInit.isOrdered = YES;
dataInit.maxRetransmits = 30;
dataInit.maxRetransmitTimeMs = 30000;
dataInit.streamId = 12;  //important setting
self.dataChannel = [_peerConnection createDataChannelWithLabel:kRTCDataChannelLabel config:dataInit];
self.dataChannel.delegate = self;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30116301

复制
相关文章

相似问题

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