EasySocket icon indicating copy to clipboard operation
EasySocket copied to clipboard

断线重连

Open 2892931976 opened this issue 4 years ago • 8 comments

断线重连怎么实现,有例子吗?

2892931976 avatar Apr 02 '20 09:04 2892931976

用心跳包检测,心跳丢失一定次数的时候,socket就断开重连

jiusetian avatar Apr 02 '20 14:04 jiusetian

connect server sucessful java.lang.RuntimeException: 读取数据的包头失败,在-1位置断开了,可能是因为socket跟服务器断开了连接 at com.example.msmk.socker_server.iowork.EasyReader.readHeaderFromSteam(EasyReader.java:178) at com.example.msmk.socker_server.iowork.EasyReader.read(EasyReader.java:76) at com.example.msmk.socker_server.iowork.EasyReader$1.run(EasyReader.java:167) at java.lang.Thread.run(Thread.java:745)

2892931976 avatar Apr 03 '20 02:04 2892931976

断线重连后,服务器报错,并且客户端也挂了

2892931976 avatar Apr 03 '20 02:04 2892931976

断线重连后,服务器报错,并且客户端也挂了

你连的服务端是项目自带的还是自己的

jiusetian avatar Apr 03 '20 03:04 jiusetian

connect server sucessful

java.lang.RuntimeException: 读取数据的包头失败,在-1位置断开了,可能是因为socket跟服务器断开了连接

at com.example.msmk.socker_server.iowork.EasyReader.readHeaderFromSteam(EasyReader.java:178)

at com.example.msmk.socker_server.iowork.EasyReader.read(EasyReader.java:76)

at com.example.msmk.socker_server.iowork.EasyReader$1.run(EasyReader.java:167)

at java.lang.Thread.run(Thread.java:745)

这个问题可能是项目默认的消息的数据结构跟服务端发回的消息的数据结构不一样

jiusetian avatar Apr 03 '20 03:04 jiusetian

项目的例子,怎么才能改成断线重连?

2892931976 avatar Apr 08 '20 07:04 2892931976

项目的例子,怎么才能改成断线重连?

首先要启动心跳检测,因为断线与否需要心跳包来检测,怎么启动例子上有,你要测试断线重连的话,可以断开手机网络或者重启服务端软件即可

jiusetian avatar Apr 08 '20 07:04 jiusetian

好的

2892931976 avatar Apr 10 '20 07:04 2892931976