minecraft-protocol
Version:
Parse and serialize minecraft packets, plus authentication and encryption.
26 lines (19 loc) • 703 B
JavaScript
module.exports = function (client, options) {
const keepAlive = options.keepAlive == null ? true : options.keepAlive
if (!keepAlive) return
const checkTimeoutInterval = options.checkTimeoutInterval || 30 * 1000
client.on('keep_alive', onKeepAlive)
let timeout = null
client.on('end', () => clearTimeout(timeout))
function onKeepAlive (packet) {
if (timeout) { clearTimeout(timeout) }
timeout = setTimeout(() => {
client.emit('error', new Error(`client timed out after ${checkTimeoutInterval} milliseconds`))
client.end('keepAliveError')
}, checkTimeoutInterval)
client.write('keep_alive', {
keepAliveId: packet.keepAliveId
})
}
}