【问题标题】:What is the best practice for IMAP connection?IMAP 连接的最佳做法是什么?
【发布时间】:2015-07-20 22:33:11
【问题描述】:

我认为connection 的概念对我来说并不完全清楚。

我正在为一个项目构建一个小型只读网络邮件,我正在使用 net/imap ruby​​ 库。

我是否应该每次都打开连接、进行身份验证、执行操作并断开连接?

或者我应该打开一个连接并传递我的应用程序吗? 有人可以向我解释一下 IMAP 连接的概念吗?

我看到很多客户端同时打开多个连接,为什么?

【问题讨论】:

  • 你在寻找明显偏离主题的意见。
  • 意见?我试图理解imap connection 的概念,我不清楚。现在关于最佳做法的问题是否违法?
  • 多线程客户端可以使用多个连接来避免锁。也许这些客户端实现了 IMAP-connection-pool,例如 ADO.NET 中的 SQL-connection-pool。

标签: imap


【解决方案1】:

IMAP 连接非常昂贵,如果您想在接下来的几秒钟(甚至几分钟)内再次使用它,就想保留它。与您可能熟悉的 HTTP 连接相比,它包含更多的状态并且设置成本要高得多。

但是,IMAP 连接只是随机中断。当 TCP 连接保持安静三分钟时,许多 NAT 中间盒都会感到惊讶,就像 IMAP 连接经常做的那样。因此,您可能希望接受连接可能会断开,并在必要时重新打开。

【讨论】:

  • 但是如果我打开一个连接,并且我的网络邮件上有 10 个用户。第一次进行搜索需要一些时间,如果其他操作使用相同的连接必须等到搜索完成才能处理?
  • 技术上不可以,但是完全异步的 IMAP 客户端库很少见,而且还不清楚是否有任何服务器实际上支持同时处理多个命令,但规范允许这样做。
  • 您不能为两个用户使用一个 IMAP 连接。它保留的部分状态是用户的登录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-22
  • 1970-01-01
  • 2017-11-04
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
  • 1970-01-01
相关资源
最近更新 更多