我正在使用一个Android应用程序,它已经推出了自己的长轮询实现。它通过设置读取和放大来实现这一点。 HttpUrlConnection.
上的连接超时当SocketTimeoutException
发生时,它将重新建立连接。服务器只是保持连接打开,直到它检索数据。
我发现当人们期待时SocketTimeoutException
不会发生。如果我将超时设置为20秒,我会在60秒后看到异常。我发现(通常)在预期超时和异常之间的窗口中,客户端从不从服务器检索数据,尽管服务器日志显示它发送数据。我应该注意,服务器是使用NodeJS& amp;表达
我怀疑这个当前的实现存在多个问题。我的理解是,通常实现长轮询,使得服务器在设定的时间之后结束连接,而不是客户端在套接字上设置超时。
任何人都可以解释为什么我会看到这种行为吗?