开发者社区> 问答> 正文

mina udp服务端,老是会在1分钟的时候主动断开客户端是什么原因403.10 禁止访问:配置无效

服务端是NioDatagramAcceptor,当有udp客户端发数据之后,1分钟之内如果客户端没有再发数据的话,mina就会断开这个session,然后调用sessionClosed方法,导致我服务端想在1分钟之后往客户端发送数据都没法发了,session.isConnected为false.我设置了idleTime,writeTimeout,BothIdleTime等等这些超时值但全都无效,只要客户端在1分钟之内没有再发数据的话,mina就会断开它,不知道这是什么原因,怎样才能不让mina断开客户端. 我的mina版本是m6的.

展开
收起
kun坤 2020-05-27 20:02:55 931 0
1 条回答
写回答
取消 提交回答
  • 估计不是mina断的吧 有可能是客户端断的 一般长连接都会有心跳,防止长时间没有数据断开######不是客户端断的,我同样的客户端连到socket udp工具上就不会被断开######好象java nio是有些参数是不支持的 我还是建义做心跳吧 这样无论什么客户端什么服务器都没有这个问题######加心跳机制确实可以解决了. 不过我奇怪我原来的客户端也是要手动发数据的,不会主动发心跳包.那些UDP工具他们是怎么保持连接的.######而且我设置了idleTime,writeTimeout,BothIdleTime等等这些超时参数,但时间到了sessionIdle方法并没有被执行,不知道是不是mina的bug######udp是无连接的,在udp通信中,服务端收到消息后,write到客户端后,就会关闭该对象,释放资源######acceptor.setSessionRecycler(new ExpiringSessionRecycler(120)); 120单位是秒

    2020-05-28 14:52:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
探索连接的最后十秒”落时”的网关 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载