35 lines
941 B
C#
Raw Normal View History

2024-08-17 14:27:18 +08:00
using System;
using DotNetty.Handlers.Timeout;
using DotNetty.Transport.Channels;
namespace JNGame.Network.Netty
{
/// <summary>
/// Heartbeat Handler Class.
/// </summary>
public class HeartBeatHandler : ChannelHandlerAdapter
{
/// <summary>
/// Heart Beat Handler.
/// </summary>
/// <param name="context"></param>
/// <param name="evt"></param>
public override void UserEventTriggered(IChannelHandlerContext context, object evt)
{
var eventState = evt as IdleStateEvent;
if (eventState != null)
{
if (eventState.State == IdleState.ReaderIdle)
{
context.Channel.Flush();
context.Channel.CloseAsync();
}
}
else
{
base.UserEventTriggered(context, evt);
}
}
}
}