2015-07-20 49 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

相關問題