关于java socket 心跳处理方案
目前为了判断客户端是否掉线,我使用的方案是:客户端每秒发送心跳信息,服务器端起一Timer 线程每10s去判读,如果三次都未读到心跳信息,则判断客户端已经掉线,则将该socket 关闭,另外我的通信基于外网环境,在通信中为防止丢包现象,我又使用的方案是:服务器发送聊天信息给客户端,客户端收到信息后反馈接收到的回馈,若服务器端未收到回馈信息则重复发送,三次未收到信息则确定该客户端也已掉线。我的问题是如何由于两种实现都在服务器端线程使用到了readLine()去接收信息,我如何区分是心跳信息还是正常接收到信息后反馈信息,因为同时使用readLine()的话会导致两个阻塞线程去接收信息。各位对这种处理有什么好的建议吗?