write.js 529 B

123456789101112131415161718192021222324
  1. 'use strict'
  2. const mqtt = require('mqtt-packet')
  3. function write (client, packet, done) {
  4. let error = null
  5. if (client.connecting || client.connected) {
  6. try {
  7. const result = mqtt.writeToStream(packet, client.conn)
  8. if (!result && !client.errored) {
  9. client.conn.once('drain', done)
  10. return
  11. }
  12. } catch (e) {
  13. error = new Error('packet received not valid')
  14. }
  15. } else {
  16. error = new Error('connection closed')
  17. }
  18. setImmediate(done, error, client)
  19. }
  20. module.exports = write