diff options
Diffstat (limited to 'assets/src/network/transfer')
| -rw-r--r-- | assets/src/network/transfer/share_transfer.ts | 1 | ||||
| -rw-r--r-- | assets/src/network/transfer/transfer.ts | 25 |
2 files changed, 16 insertions, 10 deletions
diff --git a/assets/src/network/transfer/share_transfer.ts b/assets/src/network/transfer/share_transfer.ts index 16ad68a..0f88e04 100644 --- a/assets/src/network/transfer/share_transfer.ts +++ b/assets/src/network/transfer/share_transfer.ts @@ -6,7 +6,6 @@ import type { RequestIceCandidateMessage, ShareAcceptedMessage, } from "../channel/messages/messages"; -import { connectSocket } from "../channel/socket"; import { createTransfer, onIncomingIceCandidate, diff --git a/assets/src/network/transfer/transfer.ts b/assets/src/network/transfer/transfer.ts index a0df5bb..27182be 100644 --- a/assets/src/network/transfer/transfer.ts +++ b/assets/src/network/transfer/transfer.ts @@ -39,25 +39,27 @@ export function createTransfer( negotiated: true, id: 0, }); - const state = writable(TransferState.CONNECTING); - channel.onopen = () => { - state.set(TransferState.TRANSFERRING); - const completeTransfer = () => state.set(TransferState.DONE); - onChannel(channel, completeTransfer); - }; + const state = writable(TransferState.CONNECTING); - return { + const transfer = { pc, channel, state, }; + + channel.onopen = () => { + state.set(TransferState.TRANSFERRING); + onChannel(channel, () => onTransferComplete(transfer)); + }; + + return transfer; } export function bindTransfer( request: OwnRequest | IncomingRequest, transferPromise: Promise<Transfer>, - onTransferComplete: () => void + completeTransfer: () => void ) { transferPromise.then(transfer => { request.transfer = transfer; @@ -68,7 +70,7 @@ export function bindTransfer( // Once the data has been transferred we can remove the transfer request.transfer = null; - onTransferComplete(); + completeTransfer(); } }); }); @@ -92,3 +94,8 @@ export function unregisterIceOnComplete( } }; } + +function onTransferComplete(transfer: Transfer) { + transfer.state.set(TransferState.DONE); + transfer.pc.close(); +} |
