25 lines
529 B
JavaScript
25 lines
529 B
JavaScript
'use strict'
|
|
|
|
const mqtt = require('mqtt-packet')
|
|
|
|
function write (client, packet, done) {
|
|
let error = null
|
|
if (client.connecting || client.connected) {
|
|
try {
|
|
const result = mqtt.writeToStream(packet, client.conn)
|
|
if (!result && !client.errored) {
|
|
client.conn.once('drain', done)
|
|
return
|
|
}
|
|
} catch (e) {
|
|
error = new Error('packet received not valid')
|
|
}
|
|
} else {
|
|
error = new Error('connection closed')
|
|
}
|
|
|
|
setImmediate(done, error, client)
|
|
}
|
|
|
|
module.exports = write
|