     /**
      The socket did connect to remote.
 
-     - parameter socket: The connected socket.
+     - parameter adapterSocket: The connected socket.
      */
-    func didConnect(_ adapterSocket: AdapterSocket, withResponse: ConnectResponse)
+    func didConnectWith(adapterSocket: AdapterSocket)
 
     /**
      The socket did disconnect.

    /**
     Read data from the socket.

     - parameter tag: The tag identifying the data in the callback delegate method.
     - warning: This should only be called after the last read is finished, i.e., `delegate?.didReadData()` is called.
     */
    func readDataWithTag(_ tag: Int)

    /**
     Send data to remote.

     - parameter data: Data to send.
     - parameter tag:  The tag identifying the data in the callback delegate method.
     - warning: This should only be called after the last write is finished, i.e., `delegate?.didWriteData()` is called.
     */
    func writeData(_ data: Data, withTag tag: Int)

    /**
     Disconnect the socket elegantly.


     - parameter socket: The socket which did disconnect.
     */
    func didDisconnectWith(socket: SocketProtocol)

    /**
     The socket did read some data.

     - parameter data:    The data read from the socket.
     - parameter from:    The socket where the data is read from.
     */
    func didRead(data: Data, from: SocketProtocol)

    /**
     The socket did send some data.

     - parameter data:    The data which have been sent to remote (acknowledged). Note this may not be available since the data may be released to save memory.
     - parameter by:      The socket where the data is sent out.
     */
    func didWrite(data: Data?, by: SocketProtocol)

    /**
     The socket is ready to forward data back and forth.

     - parameter socket: The socket which becomes ready to forward data.
     */
    func didBecomeReadyToForwardWith(socket: SocketProtocol)

    /**
     Did receive a `ConnectRequest` from local now it is time to connect to remote.

     - parameter request: The received `ConnectRequest`.
     - parameter from:    The socket where the `ConnectRequest` is received.
     */
    func didReceive(request: ConnectRequest, from: ProxySocket)

    /**
     The adapter socket decided to replace itself with a new `AdapterSocket` to connect to remote.

     - parameter newAdapter: The new `AdapterSocket` to replace the old one.
     */
    func updateAdapterWith(newAdapter: AdapterSocket)
}
