mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2025-04-20 07:05:05 -04:00
if user actively disconnects from PairDrop server, disconnect all peer to peer connections immediately and do not wait for channels to close
This commit is contained in:
parent
1eba7359d1
commit
414cc9aa57
3 changed files with 27 additions and 15 deletions
13
index.js
13
index.js
|
@ -177,8 +177,8 @@ class PairDropServer {
|
|||
}
|
||||
|
||||
_onDisconnect(sender) {
|
||||
this._leaveRoom(sender);
|
||||
this._leaveAllSecretRooms(sender);
|
||||
this._leaveRoom(sender, 'ip', '', true);
|
||||
this._leaveAllSecretRooms(sender, true);
|
||||
this._removeRoomKey(sender.roomKey);
|
||||
sender.roomKey = null;
|
||||
}
|
||||
|
@ -322,7 +322,7 @@ class PairDropServer {
|
|||
}
|
||||
}
|
||||
|
||||
_leaveRoom(peer, roomType = 'ip', roomSecret = '') {
|
||||
_leaveRoom(peer, roomType = 'ip', roomSecret = '', disconnect = false) {
|
||||
const room = roomType === 'ip' ? peer.ip : roomSecret;
|
||||
|
||||
if (!this._rooms[room] || !this._rooms[room][peer.id]) return;
|
||||
|
@ -346,7 +346,8 @@ class PairDropServer {
|
|||
type: 'peer-left',
|
||||
peerId: peer.id,
|
||||
roomType: roomType,
|
||||
roomSecret: roomSecret
|
||||
roomSecret: roomSecret,
|
||||
disconnect: disconnect
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -393,9 +394,9 @@ class PairDropServer {
|
|||
}
|
||||
}
|
||||
|
||||
_leaveAllSecretRooms(peer) {
|
||||
_leaveAllSecretRooms(peer, disconnect = false) {
|
||||
for (let i=0; i<peer.roomSecrets.length; i++) {
|
||||
this._leaveRoom(peer, 'secret', peer.roomSecrets[i]);
|
||||
this._leaveRoom(peer, 'secret', peer.roomSecrets[i], disconnect);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue