Class WebSocketTransport
- java.lang.Object
-
- org.apache.qpid.protonj2.client.transport.TcpTransport
-
- org.apache.qpid.protonj2.client.transport.WebSocketTransport
-
- All Implemented Interfaces:
Transport
public class WebSocketTransport extends TcpTransport
Netty based WebSockets Transport that wraps and extends the TCP Transport.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.qpid.protonj2.client.transport.TcpTransport
TcpTransport.NettyDefaultHandler<E>, TcpTransport.NettyTcpTransportHandler
-
-
Field Summary
-
Fields inherited from class org.apache.qpid.protonj2.client.transport.TcpTransport
bootstrap, channel, closed, connected, connectedLatch, failureCause, host, listener, options, port, sslOptions
-
-
Constructor Summary
Constructors Constructor Description WebSocketTransport(io.netty.bootstrap.Bootstrap bootstrap, TransportOptions options, SslOptions sslOptions)
Create a newWebSocketTransport
instance with the given configuration.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addAdditionalHandlers(io.netty.channel.ChannelPipeline pipeline)
protected io.netty.channel.ChannelInboundHandlerAdapter
createChannelHandler()
java.net.URI
getRemoteURI()
Returns a URI that contains some meaningful information about the remote connection such as a scheme that reflects the transport type and the remote host and port that the connection was instructed to connect to.protected java.lang.String
getScheme()
protected void
handleConnected(io.netty.channel.Channel channel)
WebSocketTransport
write(ProtonBuffer output, java.lang.Runnable onComplete)
Writes a chunk of data over the Transport connection without performing an explicit flush on the transport.WebSocketTransport
writeAndFlush(ProtonBuffer output, java.lang.Runnable onComplete)
Writes a chunk of data over the Transport connection and requests a flush of all pending queued write operations-
Methods inherited from class org.apache.qpid.protonj2.client.transport.TcpTransport
awaitConnect, checkConnected, close, connect, flush, getBufferAllocator, getHost, getLocalPrincipal, getPort, getSslOptions, getTransportListener, getTransportOptions, handleTransportFailure, isConnected, isSecure, toOutputBuffer, write, writeAndFlush
-
-
-
-
Constructor Detail
-
WebSocketTransport
public WebSocketTransport(io.netty.bootstrap.Bootstrap bootstrap, TransportOptions options, SslOptions sslOptions)
Create a newWebSocketTransport
instance with the given configuration.- Parameters:
bootstrap
- theBootstrap
that this transport's IO is bound to.options
- theTransportOptions
used to configure the socket connection.sslOptions
- theSslOptions
to use if the options indicate SSL is enabled.
-
-
Method Detail
-
write
public WebSocketTransport write(ProtonBuffer output, java.lang.Runnable onComplete) throws java.io.IOException
Description copied from interface:Transport
Writes a chunk of data over the Transport connection without performing an explicit flush on the transport. This method allows for a completion callback that is signaled when the actual low level IO operation is completed which could be after this method has returned.- Specified by:
write
in interfaceTransport
- Overrides:
write
in classTcpTransport
- Parameters:
output
- The buffer of data that is to be transmitted.onComplete
- ARunnable
that is invoked when the IO operation completes successfully.- Returns:
- this
Transport
instance. - Throws:
java.io.IOException
- if an error occurs during the write operation.
-
writeAndFlush
public WebSocketTransport writeAndFlush(ProtonBuffer output, java.lang.Runnable onComplete) throws java.io.IOException
Description copied from interface:Transport
Writes a chunk of data over the Transport connection and requests a flush of all pending queued write operations- Specified by:
writeAndFlush
in interfaceTransport
- Overrides:
writeAndFlush
in classTcpTransport
- Parameters:
output
- The buffer of data that is to be transmitted.onComplete
- ARunnable
that is invoked when the IO operation completes successfully.- Returns:
- this
Transport
instance. - Throws:
java.io.IOException
- if an error occurs during the write operation.
-
getRemoteURI
public java.net.URI getRemoteURI()
Description copied from interface:Transport
Returns a URI that contains some meaningful information about the remote connection such as a scheme that reflects the transport type and the remote host and port that the connection was instructed to connect to. If called before theTransport.connect(String, int, TransportListener)
method this method returnsnull
.- Specified by:
getRemoteURI
in interfaceTransport
- Overrides:
getRemoteURI
in classTcpTransport
- Returns:
- a URI that reflects a meaningful view of the
Transport
remote connection details.
-
createChannelHandler
protected io.netty.channel.ChannelInboundHandlerAdapter createChannelHandler()
- Overrides:
createChannelHandler
in classTcpTransport
-
addAdditionalHandlers
protected void addAdditionalHandlers(io.netty.channel.ChannelPipeline pipeline)
- Overrides:
addAdditionalHandlers
in classTcpTransport
-
handleConnected
protected void handleConnected(io.netty.channel.Channel channel) throws java.lang.Exception
- Overrides:
handleConnected
in classTcpTransport
- Throws:
java.lang.Exception
-
getScheme
protected java.lang.String getScheme()
- Overrides:
getScheme
in classTcpTransport
-
-