constructor(opts) {
		if (isString(opts)) opts = { urls: opts };

		super(opts);

		this.opts = Object.assign(
			{
				// UDP discovery options
				udpDiscovery: true,
				udpPort: 4445,
				udpBindAddress: null,
				udpPeriod: 30,
				udpReuseAddr: true,
				udpMaxDiscovery: 0, // 0 - No limit

				// Multicast settings
				udpMulticast: "239.0.0.0",
				udpMulticastTTL: 1,

				// Broadcast settings
				udpBroadcast: false,

				// TCP options
				port: null, // random port,
				urls: null, // Remote node addresses (when UDP discovery is not available)
				useHostname: true,

				gossipPeriod: 2, // seconds
				maxConnections: 32, // Max live outgoing TCP connections
				maxPacketSize: 1 * 1024 * 1024
			},
			this.opts
		);

		this.reader = null;
		this.writer = null;
		this.udpServer = null;

		this.gossipTimer = null;

		this.GOSSIP_DEBUG = !!this.opts.debug;
	}
Creates an instance of TcpTransporter.

@param {any} opts

@memberof TcpTransporter