IMAP的闲置搜索空闲是否存在竞争条件?

时间:2014-12-29 14:35:53

标签: imap

我有一堆代码执行IMAP命令“搜索,空闲,完成,搜索,空闲,完成,搜索......”。

有些消息是否可能在搜索和空闲命令之间到达,因此,只有在空闲返回/超时后才会被该代码接收?

EDIT1:我尝试使用GMail:在消息处理和IDLE之间使用sleep 60进行测试,即使有消息,IDLE也没有在超时之前返回;为了确保我没有错过来自IDLE的事件,我做了一个客户端发送/ recv转储并在sleep()之后发送IDLE之前尝试了一个额外的read();在睡眠期间发送测试消息()。

EDIT2:使用两个连接,一个用于获取邮件(使用' SEARCH'),另一个用于使用IDLE获取即时消息'有新消息'事件,避免竞争条件,但someone声称存在一些问题。

1 个答案:

答案 0 :(得分:1)


正确实现的服务器会在您启动IDLE后立即通知您新消息,如果它尚未通知您有关其他命令的响应。