public class ProxyConnector extends AbstractIoConnector
SocketConnector
to provide proxy support,
as suggested by MINA list discussions.
Operates by intercepting connect requests and replacing the endpoint address with the
proxy address, then adding a ProxyFilter
as the first IoFilter
which
performs any necessary handshaking with the proxy before allowing data to flow
normally. During the handshake, any outgoing write requests are buffered.
http://www.nabble.com/Meta-Transport%3A-an-idea-on-implementing-reconnection-and-proxy-td12969001.html
,
http://issues.apache.org/jira/browse/DIRMINA-415
AbstractIoService.ServiceOperationFuture
disposalLock
Constructor and Description |
---|
ProxyConnector()
Creates a new proxy connector.
|
ProxyConnector(SocketConnector connector)
Creates a new proxy connector.
|
ProxyConnector(SocketConnector connector,
IoSessionConfig config,
java.util.concurrent.Executor executor)
Creates a new proxy connector.
|
Modifier and Type | Method and Description |
---|---|
void |
cancelConnectFuture()
Cancels the real connection when reconnection is in use.
|
protected ConnectFuture |
connect0(java.net.SocketAddress remoteAddress,
java.net.SocketAddress localAddress,
IoSessionInitializer<? extends ConnectFuture> sessionInitializer)
Connects to the specified
address . |
protected void |
dispose0()
Implement this method to release any acquired resources.
|
protected ConnectFuture |
fireConnected(IoSession session)
Fires the connection event on the real future to notify the client.
|
SocketConnector |
getConnector()
Get the
SocketConnector to be used for connections
to the proxy server. |
ProxyIoSession |
getProxyIoSession()
Returns the
ProxyIoSession linked with this connector. |
IoSessionConfig |
getSessionConfig()
Returns the default configuration of the new
IoSession s
created by this service. |
TransportMetadata |
getTransportMetadata()
Returns the
TransportMetadata that this service runs on. |
void |
setProxyIoSession(ProxyIoSession proxyIoSession)
Sets the proxy session object of this connector.
|
connect, connect, connect, connect, connect, connect, finishSessionInitialization0, getConnectTimeout, getConnectTimeoutCheckInterval, getConnectTimeoutMillis, getDefaultRemoteAddress, setConnectTimeout, setConnectTimeoutCheckInterval, setConnectTimeoutMillis, setDefaultRemoteAddress, toString
addListener, broadcast, dispose, dispose, executeWorker, executeWorker, getActivationTime, getFilterChain, getFilterChainBuilder, getHandler, getListeners, getManagedSessionCount, getManagedSessions, getScheduledWriteBytes, getScheduledWriteMessages, getSessionDataStructureFactory, getStatistics, initSession, isActive, isDisposed, isDisposing, removeListener, setFilterChainBuilder, setHandler, setSessionDataStructureFactory
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addListener, broadcast, dispose, dispose, getActivationTime, getFilterChain, getFilterChainBuilder, getHandler, getManagedSessionCount, getManagedSessions, getScheduledWriteBytes, getScheduledWriteMessages, getSessionDataStructureFactory, getStatistics, isActive, isDisposed, isDisposing, removeListener, setFilterChainBuilder, setHandler, setSessionDataStructureFactory
public ProxyConnector()
public ProxyConnector(SocketConnector connector)
connector
- Connector used to establish proxy connections.public ProxyConnector(SocketConnector connector, IoSessionConfig config, java.util.concurrent.Executor executor)
AbstractIoConnector(IoSessionConfig, Executor).
public IoSessionConfig getSessionConfig()
IoSession
s
created by this service.getSessionConfig
in interface IoService
getSessionConfig
in class AbstractIoService
public ProxyIoSession getProxyIoSession()
ProxyIoSession
linked with this connector.public void setProxyIoSession(ProxyIoSession proxyIoSession)
proxyIoSession
- the configuration of this connector.protected ConnectFuture connect0(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress, IoSessionInitializer<? extends ConnectFuture> sessionInitializer)
address
. If communication starts
successfully, events are fired to the connector's handler
.connect0
in class AbstractIoConnector
remoteAddress
- the remote address to connect tolocalAddress
- the local addresssessionInitializer
- the session initializerConnectFuture
that will tell the result of the connection attemptpublic void cancelConnectFuture()
protected ConnectFuture fireConnected(IoSession session)
session
- the current sessionpublic final SocketConnector getConnector()
SocketConnector
to be used for connections
to the proxy server.protected void dispose0() throws java.lang.Exception
AbstractIoService.dispose()
.dispose0
in class AbstractIoService
java.lang.Exception
public TransportMetadata getTransportMetadata()
TransportMetadata
that this service runs on.Copyright © 2004-2019 Apache MINA Project. All Rights Reserved.