Merge pull request #30 from ellisonbg/clear-interval
Add clearInterval calls to clean up closure passed to setInterval
This commit is contained in:
commit
db90e2a594
10
bin/utils.js
10
bin/utils.js
@ -216,9 +216,7 @@ exports.setupWSConnection = (conn, req, { docName = req.url.slice(1).split('?')[
|
|||||||
doc.conns.set(conn, new Set())
|
doc.conns.set(conn, new Set())
|
||||||
// listen and reply to events
|
// listen and reply to events
|
||||||
conn.on('message', /** @param {ArrayBuffer} message */ message => messageListener(conn, doc, new Uint8Array(message)))
|
conn.on('message', /** @param {ArrayBuffer} message */ message => messageListener(conn, doc, new Uint8Array(message)))
|
||||||
conn.on('close', () => {
|
|
||||||
closeConn(doc, conn)
|
|
||||||
})
|
|
||||||
// Check if connection is still alive
|
// Check if connection is still alive
|
||||||
let pongReceived = true
|
let pongReceived = true
|
||||||
const pingInterval = setInterval(() => {
|
const pingInterval = setInterval(() => {
|
||||||
@ -233,12 +231,18 @@ exports.setupWSConnection = (conn, req, { docName = req.url.slice(1).split('?')[
|
|||||||
conn.ping()
|
conn.ping()
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
closeConn(doc, conn)
|
closeConn(doc, conn)
|
||||||
|
clearInterval(pingInterval)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, pingTimeout)
|
}, pingTimeout)
|
||||||
|
conn.on('close', () => {
|
||||||
|
closeConn(doc, conn)
|
||||||
|
clearInterval(pingInterval)
|
||||||
|
})
|
||||||
conn.on('pong', () => {
|
conn.on('pong', () => {
|
||||||
pongReceived = true
|
pongReceived = true
|
||||||
})
|
})
|
||||||
|
|
||||||
// send sync step 1
|
// send sync step 1
|
||||||
const encoder = encoding.createEncoder()
|
const encoder = encoding.createEncoder()
|
||||||
encoding.writeVarUint(encoder, messageSync)
|
encoding.writeVarUint(encoder, messageSync)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user