1 | 'use strict'
|
2 |
|
3 | var net = require('net')
|
4 | var tls = require('tls')
|
5 | var inherits = require('inherits')
|
6 | var Connection = require('mqtt-connection')
|
7 | var MqttServer
|
8 | var MqttSecureServer
|
9 |
|
10 | function setupConnection (duplex) {
|
11 | var connection = new Connection(duplex)
|
12 | this.emit('client', connection)
|
13 | }
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 | MqttServer = 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 | }
|
35 | inherits(MqttServer, net.Server)
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 | MqttSecureServer = module.exports.SecureServer =
|
44 | function SecureServer (opts, listener) {
|
45 | if (!(this instanceof SecureServer)) {
|
46 | return new SecureServer(opts, listener)
|
47 | }
|
48 |
|
49 |
|
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 | }
|
65 | inherits(MqttSecureServer, tls.Server)
|