【发布时间】:2015-02-10 15:54:11
【问题描述】:
我有一堆执行 IMAP 命令的代码“搜索、空闲、完成、搜索、空闲、完成、搜索……”。
是否有可能某些消息在搜索和空闲命令之间到达,因此只有在空闲返回/超时后才会被该代码接收?
EDIT1:我用 GMail 尝试过:在消息处理和 IDLE 之间使用 sleep 60 进行了测试,即使有消息,IDLE 也没有在超时之前返回;为了确保我没有错过来自 IDLE 的事件,我做了一个客户端发送/接收转储,并在 sleep() 之后发送 IDLE 之前尝试了额外的 read();在 sleep() 期间发送测试消息时。
EDIT2:使用两个连接,一个用于获取邮件(使用“搜索”),另一个用于使用 IDLE 获取即时“有新消息”事件,避免了竞争条件,但 someone 声称存在一些问题用那个。
【问题讨论】:
-
关于使用两个连接的“声称的问题”——你能提供更多的颜色吗?您最终是否使用了两个连接并且是否正常?有什么问题吗?
标签: imap