2015-04-07 66 views
5

我半信半疑通常其次,微信等流行的聊天應用例如WhatsApp可以看出,這些應用程序共享一個低 - 分辨率模糊了實際的圖像/視頻文件的圖像的方法。這是如何管理的?低分辨率的縮略圖管理聊天應用

我關心的是在服務器端的空間管理。 客戶端是否處理原始圖像並創建低分辨率版本並向服務器發送2個請求(原始文件+模糊文件)?之後,大小較低的模糊圖像與觸發原始圖像/視頻文件的GET請求的其他人共享。

或者服務器本身做了一些處理,一個接收到原始文件並製作一個低分辨率版本。並按上述進行。

在這兩種情況下,我可以想到,空間正在吃服務器結束與每個圖像/視頻共享2實例。

請讓我知道這是怎麼genrally進行。 將不勝感激!

+0

我所知,他們有2個圖像,這是對像40x40的頂欄的用戶配置文件的圖像,所以當你去看看大圖首先他們伸展的形象看起來像低分辨率,直到他們下載實際的一個,在圖像發送他們還首先發送非常低分辨率的圖像,然後是實際的圖像。一些更高級的聊天引擎會計算您的網絡速度並基於此發送第一個有效載荷圖像。 – Retro

+0

問題是,除非下載開始,否則接收客戶端根本不知道原始圖像的模糊版本的外觀。即使拉伸像素也會涉及下載圖像本身的權利? –

+0

你總是收到圖像的基本版本,那麼,如果你想看到真實版的獲取下載,小版本進入的base64字符串作爲小帶按摩信息2KB的有效載荷。 – Retro

回答

0

你需要上傳你的服務器(Web服務器),並使用Web服務器,您可以發送文件的base64的縮略圖ejabberd服務器上的原始文件。從客戶端而不是服務器端創建模糊的圖像(如果您在客戶端執行此操作,則服務器上的工作負載較少)。在這種情況下,您需要通過此自定義模塊http服務器通過ejabberd服務器進行通信來創建自定義ejabberd模塊。