UNPKG

1.3 kBJavaScriptView Raw
1'use strict'
2
3var net = require('net')
4var tls = require('tls')
5var inherits = require('inherits')
6var Connection = require('mqtt-connection')
7var MqttServer
8var MqttSecureServer
9
10function setupConnection (duplex) {
11 var connection = new Connection(duplex)
12 this.emit('client', connection)
13}
14
15/*
16 * MqttServer
17 *
18 * @param {Function} listener - fired on client connection
19 */
20MqttServer = module.exports = function Server (listener) {
21 if (!(this instanceof Server)) {
22 return new Server(listener)
23 }
24
25 net.Server.call(this)
26
27 this.on('connection', setupConnection)
28
29 if (listener) {
30 this.on('client', listener)
31 }
32
33 return this
34}
35inherits(MqttServer, net.Server)
36
37/**
38 * MqttSecureServer
39 *
40 * @param {Object} opts - server options
41 * @param {Function} listener
42 */
43MqttSecureServer = module.exports.SecureServer =
44 function SecureServer (opts, listener) {
45 if (!(this instanceof SecureServer)) {
46 return new SecureServer(opts, listener)
47 }
48
49 // new MqttSecureServer(function(){})
50 if (typeof opts === 'function') {
51 listener = opts
52 opts = {}
53 }
54
55 tls.Server.call(this, opts)
56
57 if (listener) {
58 this.on('client', listener)
59 }
60
61 this.on('secureConnection', setupConnection)
62
63 return this
64 }
65inherits(MqttSecureServer, tls.Server)