server.on('connection', function(stream) { var conn = mqttCon(stream); conn.on('connect', function() { console.log('connected'); }); conn.on('publish', function(packet) { // console.log(packet); conn.puback({ messageId: packet.messageId }) }); conn.on('pingreq', function() { conn.pingresp(); }); // conn is your MQTT connection! });
constructor(server: net.Server, opts: HybridSwitcherOptions) { super(); this.server = server; this.wsprocessor = new WSProcessor(); this.tcpprocessor = new TCPProcessor(opts.closeMethod); this.id = 1; this.timeout = (opts.timeout || DEFAULT_TIMEOUT) * 1000; this.setNoDelay = opts.setNoDelay; if (!opts.ssl) { this.server.on('connection', this.newSocket.bind(this)); } else { this.server.on('secureConnection', this.newSocket.bind(this)); this.server.on('clientError', function (e, tlsSo) { logger.warn('an ssl error occured before handshake established: ', e); tlsSo.destroy(); }); } this.wsprocessor.on('connection', this.emit.bind(this, 'connection')); this.tcpprocessor.on('connection', this.emit.bind(this, 'connection')); this.state = ST_STARTED; }
/** Start the server listening on the given port */ start(robotMasterUrl: string , port?: number, hostname?: string) { if (this.running) { return; } this.running = true; this.robotMasterUrl = robotMasterUrl; let self = this; port = port || 8000; self.hostname = hostname || 'localhost'; self.port = port; self.connections = []; self.server = http.createServer(function (req, res) { self.route_(req, res); }); self.server.on('connection', function (c) { // We need to track incoming connections, beause Server.close() won't terminate active // connections by default. c.on('close', function () { let idx = self.connections.indexOf(c); if (idx !== -1) { self.connections.splice(idx, 1); } }); self.connections.push(c); }); self.server.listen(this.port, this.hostname); self.emit('start', self.hostname, self.port); return self; }
this.server.on('listening', this.emit.bind(this, 'listening')); this.server.on('error', function (err) { this.server.on('connection', function (stream) { let socket = mqtt_constructor(stream) as MqttSocket; socket.id = curId++; socket.on('connect', (pkg: any) => { socket.connack({ returnCode: 0 }); socket.on('publish', function (pkg: any) { let topic = pkg.topic; let msg = pkg.payload.toString(); }); socket.on('pingreq', function () { socket.pingresp(); });
logger.info('[MQTTConnector] listen on %d', this.port); this.server.on('error', function (err) { this.server.on('connection', (stream) => { let client = mqtt_connection(stream); client.on('error', function (err: Error) { client.destroy(); }); client.on('close', function () { client.destroy(); }); client.on('disconnect', function (packet: any) { client.destroy(); }); stream.on('timeout', function () { client.destroy(); }); client.on('publish', function (packet: any) { client.on('pingreq', function () { client.on('connect', function (packet: any) { client.connack({ returnCode: 0 }); let mqttsocket = new MQTTSocket(curId++, client, self.adaptor);
this.server.on('error', (err) => { logger.error('rpc server is error: %j', err.stack); self.emit('error', err, this); }); this.server.on('connection', function (stream) { stream.setNoDelay(true) let socket = MqttCon(stream); socket['id'] = curId++; socket.on('connect', function (pkg: any) { console.log('connected'); }); socket.on('publish', function (pkg: any) { pkg = pkg.payload.toString(); let isArray = false; socket.on('pingreq', function () { socket.pingresp(); }); socket.on('error', function () { self.onSocketClose(socket); }); socket.on('close', function () { self.onSocketClose(socket); });
this.server.on('error', function (err) { logger.error('rpc server is error: %j', err.stack); self.emit('error', err); }); this.server.on('connection', function (stream) { stream.setNoDelay(true) let socket = MqttCon(stream); socket['id'] = curId++; socket.on('connect', function (pkg: AcceptorPkg) { console.log('connected'); self.sendHandshake(socket, self); }); socket.on('publish', function (pkg: AcceptorPkg) { let newPkg: any = Coder.decodeServer(pkg.payload, self.servicesMap); try { socket.on('pingreq', function () { socket.pingresp(); }); socket.on('error', function () { self.onSocketClose(socket); }); socket.on('close', function () { self.onSocketClose(socket);
/** @returns {Promise<number>} */ function getPort() { return new Promise((resolve, reject) => { const server = net.createServer(); server.unref(); server.on('error', reject); server.listen(() => { const port = server.address().port; server.close(() => { resolve(port); }); }); }) }
server.on('connection', function(stream) { var conn = mqttCon(stream); conn.on('connect', function() { console.log('connected'); }); conn.on('publish', function(packet) { // console.log(packet); conn.puback({ messageId: packet.messageId }) }); conn.on('pingreq', function() { conn.pingresp(); }); // conn is your MQTT connection! });
this.server.on('error', function (err) { logger.error('rpc server is error: %j', err.stack); self.emit('error', err); }); this.server.on('connection', function (stream) { stream.setNoDelay(true) let socket = MqttCon(stream); socket['id'] = curId++; socket.on('connect', function (pkg: AcceptorPkg) { console.log('connected'); self.sendHandshake(socket, self); }); socket.on('publish', function (pkg: AcceptorPkg) { let newPkg: any = Coder.decodeServer(pkg.payload, self.servicesMap); try { socket.on('pingreq', function () { socket.pingresp(); }); socket.on('error', function () { self.onSocketClose(socket); }); socket.on('close', function () { self.onSocketClose(socket);
this.server.on('error', (err) => { logger.error('rpc server is error: %j', err.stack); self.emit('error', err, this); }); this.server.on('connection', function (stream) { stream.setNoDelay(true) let socket = MqttCon(stream); socket['id'] = curId++; socket.on('connect', function (pkg: any) { console.log('connected'); }); socket.on('publish', function (pkg: any) { pkg = pkg.payload.toString(); let isArray = false; socket.on('pingreq', function () { socket.pingresp(); }); socket.on('error', function () { self.onSocketClose(socket); }); socket.on('close', function () { self.onSocketClose(socket); });