Open jrmylee opened 1 year ago
fixed it. Looks like some messages were coming back out of order. Just need to keep track of the last seq number to fix this.
` var lastSeqNum = -1; var buffer = []; const message = function (event) { var agentMessage = ssm.decode(event.data); ssm.sendACK(socket, agentMessage);
if (agentMessage.payloadType === 17) {
ssm.sendInitMessage(socket, termOptions);
return;
}
if (agentMessage.payloadType === 1) {
if (agentMessage.sequenceNumber - 1 !== lastSeqNum) {
buffer.push(agentMessage);
} else {
lastSeqNum = agentMessage.sequenceNumber;
writeToTerminal(textDecoder.decode(agentMessage.payload));
if (buffer.length > 0) {
let length = buffer.length;
for (let i = length - 1; i >= 0; i--) {
if (buffer[i].sequenceNumber - 1 === lastSeqNum) {
lastSeqNum = buffer[i].sequenceNumber;
writeToTerminal(textDecoder.decode(buffer[i].payload));
buffer.splice(i, 1);
}
}
}
}
}
}
`
also might be related to terminal size? #16
Running into some funky terminal outputs when using this repo. I essentially have the same setup as the source code, but when running commands like
ls
, I get ordering problems, and missing characters like below. Is this a known issue and are there potential work around?