netty 里面的 channel 什么时候会触发关闭?

2018-09-19 17:56:05 +08:00
 nextdiscover

netty 里面的 channel 什么时候会触发关闭?我的本地连接经常断开,使用 channel.isActive()返回 false,不知道哪里触发了断开。有没有大佬知道,求指导

10158 次点击
所在节点    Java
11 条回复
LucasLee92
2018-09-19 18:21:00 +08:00
兄弟,有空去注册一个 stackoverflow 的账号吧,至少注册的时候会教你一些问别人之前的一些常识
nextdiscover
2018-09-19 20:53:07 +08:00
@LucasLee92 在上面或者百度或者 google 能找到答案我还来这里问,你怎么知道我没查就来问,没事不要揣测别人,你不想回答就别回复
guyeu
2018-09-19 20:58:58 +08:00
最近刚好在看这部份内容,有很多种情况,isActive()返回 false 也不一定是连接断开,channel 有四种状态,registered、active、inactive、unregistered,你可以用 handler 拦截这些事件来判断连接是在什么时候断开的。
anthow
2018-09-20 09:08:39 +08:00
如果是服务端的话可能对方不是长连接,请求一次就 gg,这样你这边 channel.isActive()就会返回 false
nextdiscover
2018-09-20 09:33:24 +08:00
@guyeu 了解了,谢谢指导,我去试一下
nextdiscover
2018-09-20 09:35:07 +08:00
@anthow 嗯嗯,服务端是 php 写的长连接,因为我是移动端开发,所以 netty 了解的比较少,小白一枚,还望多多指教,谢谢
nextdiscover
2018-09-20 09:37:51 +08:00
@guyeu 我用 handle 拦截了,调用 channelIncative 方法应该就是断开了,我重新连接的时候,连接成功后接着发了一个心跳的字符串,然后接着就回调 channelInactive 了,不知道为什么
sagaxu
2018-09-20 09:45:11 +08:00
tcp 协议了解一下
goinghugh
2018-09-20 09:51:08 +08:00
调试的时候可以使用 telnet 命令看看服务端是否正常,先缩小问题的范围
guyeu
2018-09-20 10:48:57 +08:00
emmmm 楼上说的对 先确定是否是服务端的问题,如果是,可以先排查一下参数设置的是否有问题,再看看 handler 里的逻辑是不是有问题
nextdiscover
2018-09-20 14:16:12 +08:00
@guyeu 嗯嗯,谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/490916

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX