sendApplicationStream method
void
sendApplicationStream(
- int streamId,
- Uint8List data, {
- bool fin = false,
- int offset = 0,
})
Implementation
void sendApplicationStream(
int streamId,
Uint8List data, {
bool fin = false,
int offset = 0,
}) {
if (!applicationSecretsDerived || appWrite == null) {
throw StateError('Cannot send application stream before 1-RTT keys');
}
final frame = _buildStreamFrame(
streamId: streamId,
data: data,
offset: offset,
fin: fin,
);
final pn = _allocateSendPn(EncryptionLevel.application);
final raw = encryptQuicPacket(
'short',
frame,
appWrite!.key,
appWrite!.iv,
appWrite!.hp,
pn,
_dcidForShortHeader(), // ✅ REQUIRED
localCid,
Uint8List(0),
);
if (raw == null) {
throw StateError('Failed to encrypt application STREAM packet');
}
socket.send(raw, peerAddress, peerPort);
print(
'✅ Sent application STREAM pn=$pn streamId=$streamId '
'len=${data.length} fin=$fin',
);
}