对我所拥有的一个简短的解释。
问题是,当我没有发送数据30秒时,客户端似乎自动关闭流。
我已经将Timout从30秒设置为LONG.MAX_VALUE:
stream.setIdleTimeout(Long.MAX_VALUE);
现在我已经实现了一个“Heartbeat-Workaround”,它每隔20秒就会推送一个简单的字符串,所以我可以避免超时。
我只是想知道这是否是唯一的方法。或者,如果我必须更改一些我没有找到的设置。
感谢您的回答。
问候!
答案 0 :(得分:1)
似乎你正在进行反向HTTP长轮询,这确实需要“心跳”以避免流或连接被空闲超时关闭。
通常更好的做常规HTTP长轮询(即客户端发送心跳),因为它允许服务器更快地检测断开连接的客户端。
但是,如果要执行服务器推送消息传递,最好使用CometD等解决方案。