一、子线程操作
1、在执行accept()方法会阻塞等待,开启子线程避免ANR。
2、接收数据, IO操作完成一定要释放。
二、长连接
1、发送心跳包,在超时未响应发起重发N次,或者isConnect()判断。
三、粘包
快速发送短小的数据容易引起粘包
1、发送端发送时,添加发送间隔,这样处理也会影响发送端的效率,建议所有的消息处理使用队列进行处理,方便管理和添加间隔。
2、完善数据解析协议,数据包内包含数据长度,按照长度解析数据,或者在数据结尾添加特殊的符号,标记为单帧数据的结尾。