我们有一个使用套接字监听 tcp 数据包的服务器。
我正在尝试开发一个 android 客户端来与服务器通信。
问题是当应用程序 -进入后台 要么 - 没有活动 要么 - 手机锁定。 频道关闭“超时错误”来自服务器。
我尝试每 1 分钟发送一个空的 tcp 数据包
// heartbeat every 1 min
ScheduledExecutorService scheduleTaskExecutor = Executors.newScheduledThreadPool(5);
scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() {
public void run() {
client.send(HeartBeatMsg.Instance);
}
}, 0, 1, TimeUnit.MINUTES);
但仍然无法正常工作。
如何保持沟通渠道的活跃度?
//region TCP connection
Socket mSocket = new Socket(mServer, mPort);
InputStream inputStream = mSocket.getInputStream();
mOutStream = mSocket.getOutputStream();