Package com.mysql.cj.protocol
Interface SocketFactory
- All Superinterfaces:
SocketMetadata
- All Known Implementing Classes:
NamedPipeSocketFactory
,SocketFactoryWrapper
,SocksProxySocketFactory
,StandardSocketFactory
public interface SocketFactory extends SocketMetadata
Interface to allow pluggable socket creation in the driver
-
Method Summary
Modifier and Type Method Description default void
afterHandshake()
Called by the driver after completing the MySQL protocol handshake and reading the results of the authentication.default void
beforeHandshake()
Called by the driver before issuing the MySQL protocol handshake.<T extends java.io.Closeable>
Tconnect(java.lang.String host, int portNumber, PropertySet props, int loginTimeout)
Creates a new socket or channel using the given properties.<T extends java.io.Closeable>
TperformTlsHandshake(SocketConnection socketConnection, ServerSession serverSession)
If required, called by the driver during MySQL protocol handshake to transform original socket to SSL socket and perform TLS handshake.Methods inherited from interface com.mysql.cj.protocol.SocketMetadata
isLocallyConnected, isLocallyConnected
-
Method Details
-
connect
<T extends java.io.Closeable> T connect(java.lang.String host, int portNumber, PropertySet props, int loginTimeout) throws java.io.IOExceptionCreates a new socket or channel using the given properties. Properties are parsed by the driver from the URL. All properties other than sensitive ones (user and password) are passed to this method. The driver will instantiate the socket factory with the class name given in the property "socketFactory", where the standard iscom.mysql.cj.protocol.StandardSocketFactory
Implementing classes are responsible for handling synchronization of this method (if needed).- Type Parameters:
T
- result type- Parameters:
host
- the hostname passed in the URL. It will be a single hostname, as the driver parses multi-hosts (for failover) and calls this method for each host connection attempt.portNumber
- the port number to connect to (if required).props
- properties passed to the driver via the URL and/or properties instance.loginTimeout
- login timeout in milliseconds- Returns:
- a socket connected to the given host
- Throws:
java.io.IOException
- if an I/O error occurs
-
beforeHandshake
default void beforeHandshake() throws java.io.IOExceptionCalled by the driver before issuing the MySQL protocol handshake.- Throws:
java.io.IOException
- if an I/O error occurs
-
performTlsHandshake
<T extends java.io.Closeable> T performTlsHandshake(SocketConnection socketConnection, ServerSession serverSession) throws java.io.IOExceptionIf required, called by the driver during MySQL protocol handshake to transform original socket to SSL socket and perform TLS handshake.- Type Parameters:
T
- result type- Parameters:
socketConnection
- current SocketConnectionserverSession
- current ServerSession- Returns:
- SSL socket
- Throws:
java.io.IOException
- if an I/O error occurs
-
afterHandshake
default void afterHandshake() throws java.io.IOExceptionCalled by the driver after completing the MySQL protocol handshake and reading the results of the authentication.- Throws:
java.io.IOException
- if an I/O error occurs
-