diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a89cbb..232a473 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ CHANGELOG ### NEXT RELEASE * TS: fix socket/transport types (#790). +* Transport: Handle keep alive request from server (#791). ### 3.10.0 diff --git a/lib/Transport.js b/lib/Transport.js index 33018e7..52c6f15 100644 --- a/lib/Transport.js +++ b/lib/Transport.js @@ -340,7 +340,25 @@ module.exports = class Transport _onData(data) { - // CRLF Keep Alive response from server. Ignore it. + // CRLF Keep Alive request from server, reply. + if (data === '\r\n\r\n') + { + logger.debug('received message with double-CRLF Keep Alive request'); + + try + { + // Reply with single CRLF. + this.socket.send('\r\n'); + } + catch (error) + { + logger.warn(`error sending Keep Alive response: ${error}`); + } + + return; + } + + // CRLF Keep Alive response from server, ignore it. if (data === '\r\n') { logger.debug('received message with CRLF Keep Alive response');