有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在发送IMAP idle命令后是否需要执行其他操作以保持连接的活动状态?

我正在处理一个IMAP客户机(更准确地说,是JavaMail)的实现,它使用IMAP idle()命令直接从服务器获取新的电子邮件通知,而不必轮询它

我的问题是:在发送这个idle命令(即再次发送IMAP idle(),只是询问消息的数量)之后,我是否应该执行其他操作以保持连接的活动状态

另一种说法是:即使我之前发送了idle()命令,该服务器是否可以关闭当前的IMAP连接

我在Stackoverflow和其他网站上发现了很多问题/一些代码,但我仍然不满意。希望有一位IMAP协议方面的专家

谢谢


共 (2) 个答案

  1. # 1 楼答案

    服务器可能不会断开您的连接,但永远不会依赖套接字的稳定性,连接可能会因为几种不同的原因而消失,您需要优雅地拦截异常并尝试再次连接,可能是在超时时间增加之后

    例如,我认为在我的笔记本电脑移动到某个地方后,我必须重新启动它的永久连接,因为我的笔记本电脑必须在移动到另一个地方后重新启动

  2. # 2 楼答案

    协议表明,即使在空闲状态下,服务器也可能在30分钟后断开您的连接

    您必须结束空闲并至少每30分钟重新发布一次。此外,正如Worf中尉所指出的,插座可能由于许多其他原因而关闭