xuuhaoo / OkSocket

An blocking socket client for Android applications.
MIT License
2.58k stars 433 forks source link

我在云服务器上部署了socket服务端,当服务端关闭后,我的socket客户端会假连接 #143

Closed LannyLee closed 5 years ago

LannyLee commented 5 years ago

我在云服务器上部署了socket服务端,当服务端关闭后,我的socket客户端会假连接,断开,连接成功,断开连接成功,一直循环,实际上socket服务端早已关闭,但是在局域网环境并不会这样,我知道局域网和外网会有很大不同,但也仅此而已,有老师能够知道这是怎么回事嘛,我该如何处理呢

xuuhaoo commented 5 years ago

你应该打开客户端的心跳管理器 他会检查连接是否是假连接 一旦发现会断开重建或者不重建

LannyLee commented 5 years ago

@xuuhaoo 我已经在连接服务端成功后开启了心跳,并且在收到数据后进行解析执行喂狗操作,现在的情况是服务端关闭后一直连接成功,断开,连接成功,断开,其实这种情况也不会影响,一旦服务端开启会再次连接上,但是我不明白为什么服务端关闭了,客户端会假连接,我查看了服务端的电脑发现端口号并没有被占用,为什么客户端会连接呢;我看了下打印日志,客户端假连接的时候会因为解析异常而断开,因为我设置的包头长度为5个字节,因此只能看见打印了 包头为 HTTP/ ,客户端就是因为解析不了这个假连接后断开的

xuuhaoo commented 5 years ago

没太明白您说的假连接 如果服务没开是连接失败 而不是连接上断开

LannyLee commented 5 years ago

@xuuhaoo 对呀 ,我也很郁闷,服务端不开居然还能直接连上然后断开,只要服务端没打开或者客户端没关闭就一直循环连接成功再断开

xuuhaoo commented 5 years ago

没遇到过你说的问题 这个应该是服务端端口问题