_setupStream() {
		this.stream.on('readable', this._readMessage.bind(this));
		this.stream.on('error', (err) => this._debug('TCP connection error: ' + err.message)); // "close" will be emitted and we'll reconnect
		this.stream.on('end', () => this._debug('TCP connection ended'));
		this.stream.on('close', () => this.user._handleConnectionClose(this));

		this.stream.on('connect', () => {
			this._debug('TCP connection established');
			this.stream.setTimeout(Math.min(this.user._connectTimeout, 2000)); // give the CM max 2 seconds to send ChannelEncryptRequest
		});

		this.stream.on('timeout', () => {
			this._debug('TCP connection timed out');
			this.user._connectTimeout = Math.min(this.user._connectTimeout * 2, 10000); // 10 seconds max
			this.end(true);
			this.user._doConnection();
		});
	}
Set up the stream with event handlers
@private