我有一堆代码执行 IMAP 命令“搜索、空闲、完成、搜索、空闲、完成、搜索……”。
是否有可能某些消息在搜索和空闲命令之间到达,因此只能在空闲返回/超时后由该代码接收?
EDIT1:我用 GMail 尝试过:在消息处理和 IDLE 之间使用 sleep 60 进行测试,并且 IDLE 在超时之前没有返回,即使有消息;为了确保我没有错过 IDLE 的事件,我做了客户端发送/接收转储,并在 sleep() 之后发送 IDLE 之前尝试了额外的 read();在 sleep() 期间发送测试消息时。
编辑2:使用两个连接,一个用于获取邮件(使用“搜索”),另一个用于使用 IDLE 获取即时“有新消息”事件,避免了竞争条件,但是someone https://stackoverflow.com/users/2245623/jan-kundr%C3%A1t声称这存在一些问题。
正确实施的服务器将在您启动后立即通知您新消息IDLE
,如果它尚未响应某些其他命令而通知您有关它们的信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)