我正在使用 react-native 开发 XMPP 聊天应用程序。我正在使用节库与 XMPP 服务器进行通信。文字聊天工作正常。现在我正在使用 webRTC 集成视频聊天。我想使用 XMPP 服务器作为我的信令服务器。我正在使用jingle为 webRTC 通信创建媒体会话。但是当我试图创建一个 RTCPeerConnection 时,它总是返回未定义。
这是我的反应原生代码:
const client = XMPP.createClient({
jid: jid,
password: '123456',
transports: transports,
allowResumption: false
});
var session = client.jingle.createMediaSession(jid);
这就是我尝试建立会话的方式。但它抛出以下错误:
TypeError: Cannot set property 'oniceconnectionstatechange' of undefined
问题出现在SessionManager.js
this.createPeerConnection =
conf.createPeerConnection ||
((session, opts) => {
if (stanza_shims_1.RTCPeerConnection) {
return new stanza_shims_1.RTCPeerConnection(opts);
}
});
这里的 stanza_shims_1.RTCPeerConnection 总是未定义的。所以我尝试用react-native-webrtc 替换 RTCPeerConnection(不是正确的方法)。然后会话被启动并且能够发送用于信令的数据包。但是该节中的侦听器不适用于react-native-webrtc。谁能帮我完成这项工作?