2015-07-20 52 views
0

我认为connection这个概念对我来说还不完全清楚。IMAP连接的最佳做法是什么?

我正在为一个项目构建一个小型只读webmail,并且使用了红宝石的net/imap库。

我应该打开一个连接,进行身份验证,执行操作并每次断开连接?

或者我应该打开一个连接并传递给我的应用程序? 有人可以告诉我IMAP连接的概念吗?

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

+1

你正在捕鱼的意见,这是明确的主题。 –

+0

意见?我正试图理解“imap连接”的概念,它对我来说并不清楚。现在是否有关于最佳实践的问题? – ciaoben

+0

多线程客户端可以使用多个连接来避免锁定。也许这些客户端实现IMAP连接池,如** ADO.NET **中的SQL连接池。 –

回答

1

IMAP连接的价格非常昂贵,如果您希望在接下来的几秒内(甚至可能是几分钟)再次使用它,则需要保留该连接。它包含更多的状态,并且比您可能熟悉的HTTP连接更昂贵。

但是,IMAP连接随机死亡。当TCP连接保持安静三分钟时,如此多的NAT中间件会感到惊讶,因为IMAP连接通常会这样做。所以你可能会想要接受连接可能会死掉,并在必要时重新打开。

+0

但是,如果我打开一个连接,并在我的webmail上有10个用户。首先进行搜索需要一些时间,如果其他操作使用相同的连接,则必须等待搜索完成后再进行处理? – ciaoben

+0

从技术上讲,否,但完全异步的IMAP客户端库很少见,并且有些不清楚是否有任何服务器实际上支持同时处理多个命令,但规范允许它这样做。 – Max

+0

您不能为两个用户使用一个IMAP连接。它保持的状态的一部分是用户的登录。 – arnt

相关问题