subscribe(cmd, nodeID) {
		if (!this.connection) return;

		const topic = this.getTopicName(cmd, nodeID);
		let receiverOptions = this._getQueueOptions(cmd);

		if (nodeID) {
			const needAck = [PACKET_REQUEST].indexOf(cmd) !== -1;
			Object.assign(receiverOptions, this.opts.queueOptions, {
				credit_window: this.opts.prefetch !== 0 ? 0 : undefined,
				autoaccept: !needAck,
				name: topic,
				source: {
					address: topic
				},
				session: this.session
			});

			return this.connection.createReceiver(receiverOptions).then(receiver => {
				if (this.opts.prefetch !== 0) {
					receiver.addCredit(this.opts.prefetch);
				}

				receiver.on("message", context => {
					const cb = this._consumeCB(cmd, needAck)(context);
					if (isPromise(cb) && this.opts.prefetch !== 0) {
						return cb.then(() => receiver.addCredit(1));
					}
					if (this.opts.prefetch !== 0) {
						receiver.addCredit(1);
					}
				});

				this.receivers.push(receiver);
			});
		} else {
			const topicName = `${this.opts.topicPrefix}${topic}`;
			Object.assign(receiverOptions, this.opts.topicOptions, {
				name: topicName,
				source: {
					address: topicName
				},
				session: this.session
			});
			return this.connection.createReceiver(receiverOptions).then(receiver => {
				receiver.on("message", context => {
					this._consumeCB(cmd, false)(context);
				});

				this.receivers.push(receiver);
			});
		}
	}
Subscribe to a command

@param {String} cmd
@param {String} nodeID

@memberof Amqp10Transporter
@description Initialize queues and topics for all packet types.

All packets that should reach multiple nodes have a dedicated topic for that command
These packet types will not use acknowledgements.
The time-to-live for EVENT packets can be configured in options.
Examples: INFO, DISCOVER, DISCONNECT, HEARTBEAT, PING, PONG, EVENT

Other Packets are headed towards a specific queue. These don't need topics and
packets of this type will not expire.
Examples: REQUEST, RESPONSE

RESPONSE: Each node has its own dedicated queue and acknowledgements will not be used.

REQUEST: Each action has its own dedicated queue. This way if an action has multiple workers,
they can all pull from the same queue. This allows a message to be retried by a different node
if one dies before responding.