docs: public Channel connect(final ChannelPipelineFactory pipelineFactory,
  			final Event loginEvent, int timeout, TimeUnit unit)
  			throws InterruptedException
  	{
  		ChannelFuture future;
  		synchronized (bootstrap)
  		{
  			bootstrap.setPipelineFactory(pipelineFactory);
  			future = bootstrap.connect(serverAddress);
  			future.addListener(new ChannelFutureListener()
  			{
  				@Override
  				public void operationComplete(ChannelFuture future)
  						throws Exception
  				{
  					if (future.isSuccess())
  					{
  						future.getChannel().write(loginEvent);
  					}
  					else
  					{
  						throw new RuntimeException(future.getCause()
  								.getMessage());
  					}
  				}
  			});
  		}
  		return future.getChannel();
  	}