如何在react native中结束对等连接



使用react native peerjs时如何结束对等连接。。连接成功&呼叫有效。但在结束呼叫时,我还没有找到断开连接的功能,所以呼叫仍然在后台进行,直到我重新启动应用程序。

我的连接就像这个

const peerServer = new Peer(undefined, {
host: 'mvmarketserver.herokuapp.com',
config: {
iceServers: [
{url:'stun:eu-turn3.xirsys.com'},
{
username: "",
credential: "",
credentialType: 'password',
urls: [
"turn:eu-turn3.xirsys.com:80?transport=udp",
"turn:eu-turn3.xirsys.com:3478?transport=udp",
"turn:eu-turn3.xirsys.com:80?transport=tcp",
"turn:eu-turn3.xirsys.com:3478?transport=tcp",
"turns:eu-turn3.xirsys.com:443?transport=tcp",
"turns:eu-turn3.xirsys.com:5349?transport=tcp",
]
}
]
},
secure: true,
port: 443,
path: '/mypeer'
})
peerServer.on('error', console.log)

目前我的断开连接是这样的,我尝试使用new Peer((来查看创建新的Peer是否结束了上一个。请帮助

dispatch({type: DELETE_STREAM, payload: []})
dispatch({type: DELETE_MY_STREAM, payload: null})
dispatch({type: DELETE_REMOTE_STREAM, payload: []})
KeepAwake.deactivate()
SoundPlayer.stop()
const roomID = this.state.room;
console.log('leave ' + roomID);
socket.emit('end-call', {roomID}); 
const peer = new Peer();
console.log('disconnected')
InCallManager.stop({ busytone: '_DTMF_'})
this.props.leaveRoom()
const {goBack} = this.props.navigation;
goBack(null);

这里我使用本机peerConnection,但也许您可以尝试这种方式。

peerServer.on('connection', conn => {
conn.on('close', () => {
console.log("Close PeerConnection");
conn.close();
});
})

但如果这不起作用,也许con.on("关闭"(没有触发。https://github.com/peers/peerjs/issues/636

如果你正在使用SocketIo,你可以添加吮吸事件作为

socket.broadcast.emit("user-disconnected", {SOME_DATA_WHAT_YOU_WANT_TO_SEND}); 

并且您可以在客户端中处理事件

socket.on("user-disconnected", (userId)=>{
// Close peer connection or remove all video or audio stream
closePeer()
});

创建closePeer函数

function closePeer() {
for (let conns in peerServer.connections) {
peerServer.connections[conns].forEach((conn, index, array) => {
conn.peerConnection.close();
if (conn.close)
conn.close();
});
}
}

最新更新