1 | #!/usr/bin/env node
|
2 | 'use strict';
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | var MqttServer = require('./lib/server').MqttServer,
|
9 | MqttSecureServer = require('./lib/server').MqttSecureServer,
|
10 | MqttClient = require('./lib/client'),
|
11 | MqttConnection = require('mqtt-connection'),
|
12 | fs = require('fs'),
|
13 | connect = require('./lib/connect'),
|
14 | Store = require('./lib/store'),
|
15 | net = require('net'),
|
16 | defaultHost = 'localhost',
|
17 | defaultPort = 1883;
|
18 |
|
19 | module.exports.connect = connect;
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 | module.exports.createClient = function (port, host, opts) {
|
30 | console.warn('createClient is deprecated, use connect instead');
|
31 |
|
32 | if ('object' === typeof host) {
|
33 | opts = host;
|
34 | host = null;
|
35 | }
|
36 |
|
37 | opts = opts || {};
|
38 | opts.port = opts.port || port;
|
39 | opts.host = opts.host || host;
|
40 | opts.protocol = 'mqtt';
|
41 |
|
42 | return connect(opts);
|
43 | };
|
44 |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 |
|
52 |
|
53 | module.exports.createSecureClient = function (port, host, opts) {
|
54 | var i;
|
55 | console.warn('createSecureClient is deprecated, use connect instead');
|
56 |
|
57 | if ('object' === typeof port) {
|
58 | opts = port;
|
59 | port = null;
|
60 | host = null;
|
61 | } else if ('object' === typeof host) {
|
62 | opts = host;
|
63 | host = null;
|
64 | } else if ('object' !== typeof opts) {
|
65 | opts = {};
|
66 | }
|
67 |
|
68 | opts.port = port;
|
69 | opts.host = host;
|
70 | opts.protocol = 'mqtts';
|
71 |
|
72 | if (opts.keyPath && opts.certPath) {
|
73 | opts.key = fs.readFileSync(opts.keyPath);
|
74 | opts.cert = fs.readFileSync(opts.certPath);
|
75 | }
|
76 |
|
77 | opts.ca = [];
|
78 | if (opts.caPaths) {
|
79 | for (i = 0; i < opts.caPaths.length; i++) {
|
80 | opts.ca[i] = fs.readFileSync(opts.caPaths[i]);
|
81 | }
|
82 | }
|
83 |
|
84 | return connect(opts);
|
85 | };
|
86 |
|
87 |
|
88 |
|
89 |
|
90 |
|
91 |
|
92 |
|
93 | module.exports.createServer = function (listener) {
|
94 | console.warn('createServer() is deprecated, use http://npm.im/mqtt-connection or MqttServer instead');
|
95 | return new MqttServer(listener);
|
96 | };
|
97 |
|
98 |
|
99 |
|
100 |
|
101 |
|
102 |
|
103 |
|
104 |
|
105 |
|
106 |
|
107 | module.exports.createSecureServer =
|
108 | function (keyPath, certPath, listener) {
|
109 | console.warn('createSecureServer() is deprecated, use http://npm.im/mqtt-connection or MqttSecureServer instead');
|
110 | var opts = {};
|
111 |
|
112 |
|
113 | if ('string' === typeof keyPath && 'string' === typeof certPath) {
|
114 | opts.key = fs.readFileSync(keyPath);
|
115 | opts.cert = fs.readFileSync(certPath);
|
116 | } else if ('object' === typeof keyPath) {
|
117 | opts = keyPath;
|
118 | listener = certPath;
|
119 | }
|
120 |
|
121 | return new MqttSecureServer(opts, listener);
|
122 | };
|
123 |
|
124 |
|
125 |
|
126 |
|
127 |
|
128 |
|
129 |
|
130 |
|
131 | module.exports.createConnection = function (port, host, callback) {
|
132 | console.warn('createConnection() is deprecated, use http://npm.im/mqtt-connection instead');
|
133 | var net_client, mqtt_conn;
|
134 | if ('undefined' === typeof port) {
|
135 |
|
136 | port = defaultPort;
|
137 | host = defaultHost;
|
138 | callback = function () {};
|
139 | } else if ('function' === typeof port) {
|
140 |
|
141 | callback = port;
|
142 | port = defaultPort;
|
143 | host = defaultHost;
|
144 | } else if ('function' === typeof host) {
|
145 |
|
146 | callback = host;
|
147 | host = defaultHost;
|
148 | } else if ('function' !== typeof callback) {
|
149 |
|
150 | callback = function () {};
|
151 | }
|
152 |
|
153 | net_client = net.createConnection(port, host);
|
154 | mqtt_conn = new MqttConnection(net_client);
|
155 |
|
156 | net_client.on('connect', function () {
|
157 | mqtt_conn.emit('connected');
|
158 | });
|
159 |
|
160 | mqtt_conn.once('connected', function () {
|
161 | callback(null, mqtt_conn);
|
162 | });
|
163 |
|
164 | mqtt_conn.once('error', function (err) {
|
165 | callback(err);
|
166 | });
|
167 |
|
168 | return mqtt_conn;
|
169 | };
|
170 |
|
171 |
|
172 | module.exports.MqttClient = MqttClient;
|
173 | module.exports.Client = MqttClient;
|
174 | module.exports.Store = Store;
|
175 |
|
176 |
|
177 | module.exports.Server = MqttServer;
|
178 | module.exports.MqttServer = MqttServer;
|
179 | module.exports.SecureServer = MqttSecureServer;
|
180 | module.exports.MqttSecureServer = MqttSecureServer;
|
181 |
|
182 |
|
183 | module.exports.MqttConnection = MqttConnection;
|
184 |
|
185 | function cli () {
|
186 | var commist = require('commist')(),
|
187 | helpMe = require('help-me')();
|
188 |
|
189 | commist.register('publish', require('./bin/pub'));
|
190 | commist.register('subscribe', require('./bin/sub'));
|
191 | commist.register('version', function () {
|
192 | console.log('MQTT.js version:', require('./package.json').version);
|
193 | });
|
194 | commist.register('help', helpMe.toStdout);
|
195 |
|
196 | if (null !== commist.parse(process.argv.slice(2))) {
|
197 | console.log('No such command:', process.argv[2], '\n');
|
198 | helpMe.toStdout();
|
199 | }
|
200 | }
|
201 |
|
202 | if (require.main === module) {
|
203 | cli();
|
204 | }
|