【发布时间】:2021-06-16 18:05:57
【问题描述】:
我在 Unity 中使用 DotNetty,并且有以下客户端引导程序,当服务器关闭时,“clientBootstrap.ConnectAsync()”大约需要 17 秒才能放弃尝试建立连接,在此期间,客户端被冻结。实际上,不需要尝试 17 秒就知道无法连接。 如何配置“clientBootstrap.ConnectAsync()”仅尝试 5 秒? 我添加了“.Option(ChannelOption.ConnectTimeout, TimeSpan.FromMilliseconds(5000))”,但仍然需要 17 秒才能停止尝试。该选项仅触发了额外的超时异常。
try
{
var clientBootstrap = new Bootstrap();
clientBootstrap
.Group(group)
.Channel<TcpSocketChannel>()
.Option(ChannelOption.TcpNodelay, true)
.Option(ChannelOption.ConnectTimeout, TimeSpan.FromMilliseconds(1000))
.Handler(new ActionChannelInitializer<ISocketChannel>(channel =>
{
var pipeline = channel.Pipeline;
pipeline.AddLast(new IdleStateHandler(0, 0, 6));
......
}));
clientChannel = await clientBootstrap.ConnectAsync(new IPEndPoint(IPAddress.Parse(IP), Port));
非常感谢。
【问题讨论】: