ConstReadonlyAccept: "ft-accept"Receiver → sender: accepts an offer, optionally reporting already-held chunks (haveChunks) so the sender can resume.
ReadonlyCancel: "ft-cancel"Either peer: aborts the transfer, optionally with a reason.
ReadonlyChecksumMismatch: "ft-checksum-mismatch"Receiver → sender: the received data's digest did not match the sender's.
ReadonlyComplete: "ft-complete"Receiver → sender: all chunks received and (if enabled) the checksum verified; the transfer succeeded.
ReadonlyOffer: "ft-offer"Sender → receiver: proposes a transfer with its file metadata and tuning; the opening message of the handshake.
ReadonlyPause: "ft-pause"Either peer: requests the transfer be paused.
ReadonlyReject: "ft-reject"Receiver → sender: declines an offer, optionally with a reason.
ReadonlyResume: "ft-resume"Either peer: requests a paused transfer resume.
ReadonlyResumeRequest: "ft-resume-request"Receiver → sender: requests retransmission, listing the chunk indices it still needs.
ReadonlySent: "ft-sent"Sender → receiver: all chunks have been written to the wire; optionally carries the expected digest for verification.
Message types exchanged over the file-transfer control channel.
The control channel (CONTROL_CHANNEL_LABEL) carries the transfer handshake and lifecycle signalling; bulk chunk data flows on separate per-transfer data channels (see dataChannelLabel). Every control message references a
transferId.