对我所拥有的的一个简短的解释。
问题是,当我30秒没有发送数据时,客户端似乎自动关闭了Stream。
我已经将Timout从30秒设置为LONG.MAX_VALUE,并使用:
stream.setIdleTimeout(Long.MAX_VALUE);现在,我已经实现了一个“心跳-解决方案”,每20秒推送一个简单的字符串,因此我没有超时。
我只想知道这是不是唯一的办法。或者,如果我必须改变一些设置,我没有找到。
谢谢你的每一个回答。
致以问候!
发布于 2016-04-27 09:53:19
似乎您正在进行反向HTTP长轮询,这确实需要一个“心跳”,以避免流或连接被空闲超时关闭。
通常更好的做法是进行常规的HTTP长轮询(即客户端发送心跳),因为它允许服务器更快地检测断开连接的客户端。
但是,如果您想执行服务器推送消息传递,最好使用CometD之类的解决方案。
https://stackoverflow.com/questions/36884818
复制相似问题