Skip to content

Commit

Permalink
fix: more aggressive resend strategy
Browse files Browse the repository at this point in the history
  • Loading branch information
Balte de Wit committed Oct 18, 2018
1 parent bfb679f commit 8900ded
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/lib/atemSocketChild.ts
Original file line number Diff line number Diff line change
Expand Up @@ -202,14 +202,20 @@ export class AtemSocketChild extends EventEmitter {
}

private _checkForRetransmit () {
let retransmitFromPacketId: number | undefined
for (const sentPacket of this._inFlight) {
if (sentPacket && sentPacket.lastSent + this._inFlightTimeout < Date.now()) {
if (retransmitFromPacketId && sentPacket.packetId > retransmitFromPacketId) {
sentPacket.lastSent = Date.now()
sentPacket.resent++
this._sendPacket(sentPacket.packet)
} else if (sentPacket && sentPacket.lastSent + this._inFlightTimeout < Date.now()) {
if (sentPacket.resent <= this._maxRetries && sentPacket.packetId < this.nextPacketId) {
sentPacket.lastSent = Date.now()
sentPacket.resent++

this.log('RESEND: ', sentPacket)
this._sendPacket(sentPacket.packet)
retransmitFromPacketId = sentPacket.packetId
} else {
this.emit(IPCMessageType.CommandTimeout, sentPacket.packetId, sentPacket.trackingId)
this._inFlight.splice(this._inFlight.indexOf(sentPacket), 1)
Expand Down

0 comments on commit 8900ded

Please sign in to comment.