mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-06-26 03:14:47 +00:00
592 lines
31 KiB
XML
592 lines
31 KiB
XML
<?xml version="1.0"?>
|
|
<doc>
|
|
<assembly>
|
|
<name>DotNetty.Handlers</name>
|
|
</assembly>
|
|
<members>
|
|
<member name="T:DotNetty.Handlers.Flow.FlowControlHandler">
|
|
The {@link FlowControlHandler} ensures that only one message per {@code read()} is sent downstream.
|
|
|
|
Classes such as {@link ByteToMessageDecoder} or {@link MessageToByteEncoder} are free to emit as
|
|
many events as they like for any given input. A channel's auto reading configuration doesn't usually
|
|
apply in these scenarios. This is causing problems in downstream {@link ChannelHandler}s that would
|
|
like to hold subsequent events while they're processing one event. It's a common problem with the
|
|
{@code HttpObjectDecoder} that will very often fire a {@code HttpRequest} that is immediately followed
|
|
by a {@code LastHttpContent} event.
|
|
|
|
<pre>{@code
|
|
ChannelPipeline pipeline = ...;
|
|
|
|
pipeline.addLast(new HttpServerCodec());
|
|
pipeline.addLast(new FlowControlHandler());
|
|
|
|
pipeline.addLast(new MyExampleHandler());
|
|
|
|
class MyExampleHandler extends ChannelInboundHandlerAdapter {
|
|
@Override
|
|
public void channelRead(IChannelHandlerContext ctx, Object msg) {
|
|
if (msg instanceof HttpRequest) {
|
|
ctx.channel().config().setAutoRead(false);
|
|
|
|
// The FlowControlHandler will hold any subsequent events that
|
|
// were emitted by HttpObjectDecoder until auto reading is turned
|
|
// back on or Channel#read() is being called.
|
|
}
|
|
}
|
|
}
|
|
}</pre>
|
|
|
|
@see ChannelConfig#setAutoRead(bool)
|
|
</member>
|
|
<member name="P:DotNetty.Handlers.Flow.FlowControlHandler.IsQueueEmpty">
|
|
Determine if the underlying {@link Queue} is empty. This method exists for
|
|
testing, debugging and inspection purposes and it is not Thread safe!
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Flow.FlowControlHandler.Destroy">
|
|
Releases all messages and destroys the {@link Queue}.
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Flow.FlowControlHandler.Dequeue(DotNetty.Transport.Channels.IChannelHandlerContext,System.Int32)">
|
|
Dequeues one or many (or none) messages depending on the channel's auto
|
|
reading state and returns the number of messages that were consumed from
|
|
the internal queue.
|
|
|
|
The {@code minConsume} argument is used to force {@code dequeue()} into
|
|
consuming that number of messages regardless of the channel's auto
|
|
reading configuration.
|
|
|
|
@see #read(ChannelHandlerContext)
|
|
@see #channelRead(ChannelHandlerContext, Object)
|
|
</member>
|
|
<member name="T:DotNetty.Handlers.Logging.LoggingHandler">
|
|
<summary>
|
|
A <see cref="T:DotNetty.Transport.Channels.IChannelHandler" /> that logs all events using a logging framework.
|
|
By default, all events are logged at <tt>DEBUG</tt> level.
|
|
</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor">
|
|
<summary>
|
|
Creates a new instance whose logger name is the fully qualified class
|
|
name of the instance with hex dump enabled.
|
|
</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(DotNetty.Handlers.Logging.LogLevel)">
|
|
<summary>
|
|
Creates a new instance whose logger name is the fully qualified class
|
|
name of the instance
|
|
</summary>
|
|
<param name="level">the log level</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.Type)">
|
|
<summary>
|
|
Creates a new instance with the specified logger name and with hex dump
|
|
enabled
|
|
</summary>
|
|
<param name="type">the class type to generate the logger for</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.Type,DotNetty.Handlers.Logging.LogLevel)">
|
|
<summary>
|
|
Creates a new instance with the specified logger name.
|
|
</summary>
|
|
<param name="type">the class type to generate the logger for</param>
|
|
<param name="level">the log level</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.String)">
|
|
<summary>
|
|
Creates a new instance with the specified logger name using the default log level.
|
|
</summary>
|
|
<param name="name">the name of the class to use for the logger</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.String,DotNetty.Handlers.Logging.LogLevel)">
|
|
<summary>
|
|
Creates a new instance with the specified logger name.
|
|
</summary>
|
|
<param name="name">the name of the class to use for the logger</param>
|
|
<param name="level">the log level</param>
|
|
</member>
|
|
<member name="P:DotNetty.Handlers.Logging.LoggingHandler.Level">
|
|
<summary>
|
|
Returns the <see cref="T:DotNetty.Handlers.Logging.LogLevel" /> that this handler uses to log
|
|
</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.Format(DotNetty.Transport.Channels.IChannelHandlerContext,System.String)">
|
|
<summary>
|
|
Formats an event and returns the formatted message
|
|
</summary>
|
|
<param name="eventName">the name of the event</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.Format(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,System.Object)">
|
|
<summary>
|
|
Formats an event and returns the formatted message.
|
|
</summary>
|
|
<param name="eventName">the name of the event</param>
|
|
<param name="arg">the argument of the event</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.Format(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,System.Object,System.Object)">
|
|
<summary>
|
|
Formats an event and returns the formatted message. This method is currently only used for formatting
|
|
<see cref="M:DotNetty.Transport.Channels.IChannelHandler.ConnectAsync(DotNetty.Transport.Channels.IChannelHandlerContext,System.Net.EndPoint,System.Net.EndPoint)" />
|
|
</summary>
|
|
<param name="eventName">the name of the event</param>
|
|
<param name="firstArg">the first argument of the event</param>
|
|
<param name="secondArg">the second argument of the event</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.FormatByteBuffer(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,DotNetty.Buffers.IByteBuffer)">
|
|
<summary>
|
|
Generates the default log message of the specified event whose argument is a <see cref="T:DotNetty.Buffers.IByteBuffer" />.
|
|
</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.FormatByteBufferHolder(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,DotNetty.Buffers.IByteBufferHolder)">
|
|
<summary>
|
|
Generates the default log message of the specified event whose argument is a <see cref="T:DotNetty.Buffers.IByteBufferHolder" />.
|
|
</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.FormatSimple(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,System.Object)">
|
|
<summary>
|
|
Generates the default log message of the specified event whose argument is an arbitrary object.
|
|
</summary>
|
|
</member>
|
|
<member name="T:DotNetty.Handlers.Timeout.IdleState">
|
|
<summary>
|
|
An <see cref="T:System.Enum"/> that represents the idle state of a <see cref="T:DotNetty.Transport.Channels.IChannel"/>.
|
|
</summary>
|
|
</member>
|
|
<member name="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle">
|
|
<summary>
|
|
No data was received for a while.
|
|
</summary>
|
|
</member>
|
|
<member name="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle">
|
|
<summary>
|
|
No data was sent for a while.
|
|
</summary>
|
|
</member>
|
|
<member name="F:DotNetty.Handlers.Timeout.IdleState.AllIdle">
|
|
<summary>
|
|
No data was either received or sent for a while.
|
|
</summary>
|
|
</member>
|
|
<member name="T:DotNetty.Handlers.Timeout.IdleStateEvent">
|
|
<summary>
|
|
A user event triggered by <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/> when a <see cref="T:DotNetty.Transport.Channels.IChannel"/> is idle.
|
|
</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.IdleStateEvent.#ctor(DotNetty.Handlers.Timeout.IdleState,System.Boolean)">
|
|
<summary>
|
|
Constructor for sub-classes.
|
|
</summary>
|
|
<param name="state">the <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> which triggered the event.</param>
|
|
<param name="first"><code>true</code> if its the first idle event for the <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>.</param>
|
|
</member>
|
|
<member name="P:DotNetty.Handlers.Timeout.IdleStateEvent.State">
|
|
<summary>
|
|
Returns the idle state.
|
|
</summary>
|
|
<value>The state.</value>
|
|
</member>
|
|
<member name="P:DotNetty.Handlers.Timeout.IdleStateEvent.First">
|
|
<summary>
|
|
Returns <code>true</code> if this was the first event for the <see cref="T:DotNetty.Handlers.Timeout.IdleState"/>
|
|
</summary>
|
|
<returns><code>true</code> if first; otherwise, <code>false</code>.</returns>
|
|
</member>
|
|
<member name="T:DotNetty.Handlers.Timeout.IdleStateHandler">
|
|
<summary>
|
|
Triggers an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> when a <see cref="T:DotNetty.Transport.Channels.IChannel"/> has not performed
|
|
read, write, or both operation for a while.
|
|
|
|
<para>
|
|
|
|
<h3>Supported idle states</h3>
|
|
<table border="1">
|
|
<tr>
|
|
<th>Property</th><th>Meaning</th>
|
|
</tr>
|
|
<tr>
|
|
<td><code>readerIdleTime</code></td>
|
|
<td>an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle"/>
|
|
will be triggered when no read was performed for the specified period of
|
|
time. Specify <code>0</code> to disable.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>writerIdleTime</code></td>
|
|
<td>an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle"/>
|
|
will be triggered when no write was performed for the specified period of
|
|
time. Specify <code>0</code> to disable.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>allIdleTime</code></td>
|
|
<td>an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.AllIdle"/>
|
|
will be triggered when neither read nor write was performed for the
|
|
specified period of time. Specify <code>0</code> to disable.</td>
|
|
</tr>
|
|
</table>
|
|
</para>
|
|
|
|
<para>
|
|
|
|
<example>
|
|
|
|
An example that sends a ping message when there is no outbound traffic
|
|
for 30 seconds. The connection is closed when there is no inbound traffic
|
|
for 60 seconds.
|
|
|
|
<c>
|
|
var bootstrap = new <see cref="T:DotNetty.Transport.Bootstrapping.ServerBootstrap"/>();
|
|
|
|
bootstrap.ChildHandler(new ActionChannelInitializer<ISocketChannel>(channel =>
|
|
{
|
|
IChannelPipeline pipeline = channel.Pipeline;
|
|
|
|
pipeline.AddLast("idleStateHandler", new <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>(60, 30, 0);
|
|
pipeline.AddLast("myHandler", new MyHandler());
|
|
}
|
|
</c>
|
|
|
|
Handler should handle the <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> triggered by <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>.
|
|
|
|
<c>
|
|
public class MyHandler : ChannelDuplexHandler
|
|
{
|
|
public override void UserEventTriggered(<see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext"/> context, <see cref="T:System.Object"/> evt)
|
|
{
|
|
if(evt is <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>)
|
|
{
|
|
<see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> e = (<see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>) evt;
|
|
if (e.State == <see cref="T:DotNetty.Handlers.Timeout.IdleState"/>.ReaderIdle)
|
|
{
|
|
ctx.close();
|
|
}
|
|
else if(e.State == <see cref="T:DotNetty.Handlers.Timeout.IdleState"/>.WriterIdle)
|
|
{
|
|
ctx.writeAndFlush(new PingMessage());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</c>
|
|
</example>
|
|
</para>
|
|
|
|
<seealso cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/>
|
|
<seealso cref="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler"/>
|
|
</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Int32,System.Int32,System.Int32)">
|
|
<summary>
|
|
Initializes a new instance firing <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>s.
|
|
</summary>
|
|
<param name="readerIdleTimeSeconds">
|
|
an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle"/>
|
|
will be triggered when no read was performed for the specified
|
|
period of time. Specify <code>0</code> to disable.
|
|
</param>
|
|
<param name="writerIdleTimeSeconds">
|
|
an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle"/>
|
|
will be triggered when no write was performed for the specified
|
|
period of time. Specify <code>0</code> to disable.
|
|
</param>
|
|
<param name="allIdleTimeSeconds">
|
|
an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.AllIdle"/>
|
|
will be triggered when neither read nor write was performed for
|
|
the specified period of time. Specify <code>0</code> to disable.
|
|
</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.TimeSpan,System.TimeSpan,System.TimeSpan)">
|
|
<summary>
|
|
<see cref="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan,System.TimeSpan)"/>
|
|
</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
|
|
<summary>
|
|
Initializes a new instance firing <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>s.
|
|
</summary>
|
|
<param name="observeOutput">
|
|
whether or not the consumption of <code>bytes</code> should be taken into
|
|
consideration when assessing write idleness. The default is <code>false</code>.
|
|
</param>
|
|
<param name="readerIdleTime">
|
|
an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle"/>
|
|
will be triggered when no read was performed for the specified
|
|
period of time. Specify <see cref="F:System.TimeSpan.Zero"/> to disable.
|
|
</param>
|
|
<param name="writerIdleTime">
|
|
an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle"/>
|
|
will be triggered when no write was performed for the specified
|
|
period of time. Specify <see cref="F:System.TimeSpan.Zero"/> to disable.
|
|
</param>
|
|
<param name="allIdleTime">
|
|
an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.AllIdle"/>
|
|
will be triggered when neither read nor write was performed for
|
|
the specified period of time. Specify <see cref="F:System.TimeSpan.Zero"/> to disable.
|
|
</param>
|
|
</member>
|
|
<member name="P:DotNetty.Handlers.Timeout.IdleStateHandler.ReaderIdleTime">
|
|
<summary>
|
|
Return the readerIdleTime that was given when instance this class in milliseconds.
|
|
</summary>
|
|
<returns>The reader idle time in millis.</returns>
|
|
</member>
|
|
<member name="P:DotNetty.Handlers.Timeout.IdleStateHandler.WriterIdleTime">
|
|
<summary>
|
|
Return the writerIdleTime that was given when instance this class in milliseconds.
|
|
</summary>
|
|
<returns>The writer idle time in millis.</returns>
|
|
</member>
|
|
<member name="P:DotNetty.Handlers.Timeout.IdleStateHandler.AllIdleTime">
|
|
<summary>
|
|
Return the allIdleTime that was given when instance this class in milliseconds.
|
|
</summary>
|
|
<returns>The all idle time in millis.</returns>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.Ticks">
|
|
<summary>
|
|
This method is visible for testing!
|
|
</summary>
|
|
<returns></returns>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.Schedule(DotNetty.Transport.Channels.IChannelHandlerContext,System.Action{System.Object,System.Object},System.Object,System.Object,System.TimeSpan)">
|
|
<summary>
|
|
This method is visible for testing!
|
|
</summary>
|
|
<param name="ctx"></param>
|
|
<param name="task"></param>
|
|
<param name="context"></param>
|
|
<param name="state"></param>
|
|
<param name="delay"></param>
|
|
<returns></returns>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.ChannelIdle(DotNetty.Transport.Channels.IChannelHandlerContext,DotNetty.Handlers.Timeout.IdleStateEvent)">
|
|
<summary>
|
|
Is called when an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> should be fired. This implementation calls
|
|
<see cref="M:DotNetty.Transport.Channels.IChannelHandlerContext.FireUserEventTriggered(System.Object)"/>.
|
|
</summary>
|
|
<param name="context">Context.</param>
|
|
<param name="stateEvent">Evt.</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.NewIdleStateEvent(DotNetty.Handlers.Timeout.IdleState,System.Boolean)">
|
|
<summary>
|
|
Returns a <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>.
|
|
</summary>
|
|
<param name="state"></param>
|
|
<param name="first"></param>
|
|
<returns></returns>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.InitOutputChanged(DotNetty.Transport.Channels.IChannelHandlerContext)">
|
|
<summary>
|
|
<see cref="M:DotNetty.Handlers.Timeout.IdleStateHandler.HasOutputChanged(DotNetty.Transport.Channels.IChannelHandlerContext,System.Boolean)"/>
|
|
</summary>
|
|
<param name="ctx"></param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.HasOutputChanged(DotNetty.Transport.Channels.IChannelHandlerContext,System.Boolean)">
|
|
<summary>
|
|
Returns <code>true</code> if and only if the <see cref="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan,System.TimeSpan)"/>
|
|
was constructed
|
|
with <code>observeOutput</code> enabled and there has been an observed change in the
|
|
<see cref="T:DotNetty.Transport.Channels.ChannelOutboundBuffer"/> between two consecutive calls of this method.
|
|
https://github.com/netty/netty/issues/6150
|
|
</summary>
|
|
<param name="ctx"></param>
|
|
<param name="first"></param>
|
|
<returns></returns>
|
|
</member>
|
|
<member name="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler">
|
|
<summary>
|
|
Raises a <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutException"/> when no data was read within a certain
|
|
period of time.
|
|
|
|
<pre>
|
|
The connection is closed when there is no inbound traffic
|
|
for 30 seconds.
|
|
|
|
<example>
|
|
<c>
|
|
var bootstrap = new <see cref="T:DotNetty.Transport.Bootstrapping.ServerBootstrap"/>();
|
|
|
|
bootstrap.ChildHandler(new ActionChannelInitializer<ISocketChannel>(channel =>
|
|
{
|
|
IChannelPipeline pipeline = channel.Pipeline;
|
|
|
|
pipeline.AddLast("readTimeoutHandler", new <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/>(30);
|
|
pipeline.AddLast("myHandler", new MyHandler());
|
|
}
|
|
</c>
|
|
|
|
<c>
|
|
public class MyHandler : ChannelDuplexHandler
|
|
{
|
|
public override void ExceptionCaught(<see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext"/> context, <see cref="T:System.Exception"/> exception)
|
|
{
|
|
if(exception is <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutException"/>)
|
|
{
|
|
// do somethind
|
|
}
|
|
else
|
|
{
|
|
base.ExceptionCaught(context, cause);
|
|
}
|
|
}
|
|
}
|
|
</c>
|
|
</example>
|
|
</pre>
|
|
|
|
<seealso cref="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler"/>
|
|
<seealso cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>
|
|
</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.ReadTimeoutHandler.#ctor(System.Int32)">
|
|
<summary>
|
|
Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
|
|
</summary>
|
|
<param name="timeoutSeconds">Timeout in seconds.</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.ReadTimeoutHandler.#ctor(System.TimeSpan)">
|
|
<summary>
|
|
Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
|
|
</summary>
|
|
<param name="timeout">Timeout.</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.ReadTimeoutHandler.ReadTimedOut(DotNetty.Transport.Channels.IChannelHandlerContext)">
|
|
<summary>
|
|
Is called when a read timeout was detected.
|
|
</summary>
|
|
<param name="context">Context.</param>
|
|
</member>
|
|
<member name="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler">
|
|
<summary>
|
|
Raises a <see cref="T:DotNetty.Handlers.Timeout.WriteTimeoutException"/> when a write operation cannot finish in a certain period of time.
|
|
|
|
<para>
|
|
<example>
|
|
|
|
The connection is closed when a write operation cannot finish in 30 seconds.
|
|
|
|
<c>
|
|
var bootstrap = new <see cref="T:DotNetty.Transport.Bootstrapping.ServerBootstrap"/>();
|
|
|
|
bootstrap.ChildHandler(new ActionChannelInitializer<ISocketChannel>(channel =>
|
|
{
|
|
IChannelPipeline pipeline = channel.Pipeline;
|
|
|
|
pipeline.AddLast("writeTimeoutHandler", new <see cref="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler"/>(30);
|
|
pipeline.AddLast("myHandler", new MyHandler());
|
|
}
|
|
</c>
|
|
|
|
<c>
|
|
public class MyHandler : ChannelDuplexHandler
|
|
{
|
|
public override void ExceptionCaught(<see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext"/> context, <see cref="T:System.Exception"/> exception)
|
|
{
|
|
if(exception is <see cref="T:DotNetty.Handlers.Timeout.WriteTimeoutException"/>)
|
|
{
|
|
// do somethind
|
|
}
|
|
else
|
|
{
|
|
base.ExceptionCaught(context, cause);
|
|
}
|
|
}
|
|
}
|
|
</c>
|
|
|
|
</example>
|
|
</para>
|
|
<see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/>
|
|
<see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>
|
|
</summary>
|
|
</member>
|
|
<member name="F:DotNetty.Handlers.Timeout.WriteTimeoutHandler.tasks">
|
|
<summary>
|
|
A doubly-linked list to track all WriteTimeoutTasks.
|
|
</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.WriteTimeoutHandler.#ctor(System.Int32)">
|
|
<summary>
|
|
Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
|
|
</summary>
|
|
<param name="timeoutSeconds">Timeout in seconds.</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.WriteTimeoutHandler.#ctor(System.TimeSpan)">
|
|
<summary>
|
|
Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
|
|
</summary>
|
|
<param name="timeout">Timeout.</param>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Timeout.WriteTimeoutHandler.WriteTimedOut(DotNetty.Transport.Channels.IChannelHandlerContext)">
|
|
<summary>
|
|
Is called when a write timeout was detected
|
|
</summary>
|
|
<param name="context">Context.</param>
|
|
</member>
|
|
<member name="T:DotNetty.Handlers.Tls.NotSslRecordException">
|
|
<summary>
|
|
Special exception which will get thrown if a packet is
|
|
received that not looks like a TLS/SSL record. A user can check for
|
|
this <see cref="T:DotNetty.Handlers.Tls.NotSslRecordException" /> and so detect if one peer tries to
|
|
use secure and the other plain connection.
|
|
</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Tls.TlsHandler.Unwrap(DotNetty.Transport.Channels.IChannelHandlerContext,DotNetty.Buffers.IByteBuffer,System.Int32,System.Int32,System.Collections.Generic.List{System.ValueTuple{System.Int32,System.Byte}},System.Collections.Generic.List{System.Object})">
|
|
<summary>Unwraps inbound SSL records.</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.#ctor">
|
|
<summary>
|
|
Creates a new event that indicates a successful handshake.
|
|
</summary>
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.#ctor(System.Exception)">
|
|
<summary>
|
|
Creates a new event that indicates an unsuccessful handshake.
|
|
Use {@link #SUCCESS} to indicate a successful handshake.
|
|
</summary>
|
|
</member>
|
|
<member name="P:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.IsSuccessful">
|
|
<summary>
|
|
Return {@code true} if the handshake was successful
|
|
</summary>
|
|
</member>
|
|
<member name="P:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.Exception">
|
|
<summary>
|
|
Return the {@link Throwable} if {@link #isSuccess()} returns {@code false}
|
|
and so the handshake failed.
|
|
</summary>
|
|
</member>
|
|
<member name="T:DotNetty.Handlers.Tls.TlsUtils">
|
|
Utilities for TLS packets.
|
|
</member>
|
|
<member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_CHANGE_CIPHER_SPEC">
|
|
change cipher spec
|
|
</member>
|
|
<member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_ALERT">
|
|
alert
|
|
</member>
|
|
<member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_HANDSHAKE">
|
|
handshake
|
|
</member>
|
|
<member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_APPLICATION_DATA">
|
|
application data
|
|
</member>
|
|
<member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_RECORD_HEADER_LENGTH">
|
|
the length of the ssl record header (in bytes)
|
|
</member>
|
|
<member name="M:DotNetty.Handlers.Tls.TlsUtils.GetEncryptedPacketLength(DotNetty.Buffers.IByteBuffer,System.Int32,System.Byte@)">
|
|
<summary>
|
|
Return how much bytes can be read out of the encrypted data. Be aware that this method will not increase
|
|
the readerIndex of the given <see cref="T:DotNetty.Buffers.IByteBuffer"/>.
|
|
</summary>
|
|
<param name="buffer">
|
|
The <see cref="T:DotNetty.Buffers.IByteBuffer"/> to read from. Be aware that it must have at least
|
|
<see cref="F:DotNetty.Handlers.Tls.TlsUtils.SSL_RECORD_HEADER_LENGTH"/> bytes to read,
|
|
otherwise it will throw an <see cref="T:System.ArgumentException"/>.
|
|
</param>
|
|
<param name="offset">Offset to record start.</param>
|
|
<returns>
|
|
The length of the encrypted packet that is included in the buffer. This will
|
|
return <c>-1</c> if the given <see cref="T:DotNetty.Buffers.IByteBuffer"/> is not encrypted at all.
|
|
</returns>
|
|
</member>
|
|
</members>
|
|
</doc>
|