淺析php如何實現App常用的秒發功能
很多社交軟件都是用了一種秒發機制,讓用戶的體檢感很好,今天我們也來談談這些社交軟件中常用的小技巧。就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!
前言
想象一下,我們平常發朋友圈的時候,N張圖片配上文字,嗖的一下就發出去了,不帶任何拖泥帶水的那種,體驗感覺好爽~。
但是我們停下來用技術手段思考一下,這可能嗎?有些2G網絡最多也就幾十K網速,我們的圖片隨便一張都幾M,即使壓縮過也有幾百K,怎麼可能瞬間發出消息呢?
現在想想,是不是有些詭異呢~
其實吧,衆多社交軟件(微博,微信)都是用了一種秒發機制。他並不是真的先去發送然後發送完畢再告訴你發送成功,而是直接告訴你發送成功,然後後臺再偷偷去上傳你發的東西,所以在網速不好的時候我們會經常發現一個現象,剛開始發出的朋友圈剛開始很正常,但是過了幾分鐘後,提示我們發送失敗!這很很尷尬啊,明明剛開始你什麼也沒說啊,到了最關鍵的時候你告訴我不行了..
不要被高大上的技術嚇到了,無非就是做了一些小技巧而已,真的很基礎,但是也真的很實用。
在討論技術前首先聲明一些初始條件。
1.對數據庫表結構進行了一些特殊改造: 朋友圈內容表有一個特殊的字段status, status值有兩種情況,值可以爲1或者2,
值爲1是朋友圈未發佈。 值爲2是朋友圈已發佈。 (暫時看不懂爲什麼這樣做的同學,可以先繼續閱讀,後面會講解)
2.此篇文章的秒發功能指的有圖片的情況下使用,因爲有圖片的話,圖片上傳太慢,所以需要採用秒發機制,但是沒有圖片純文字的'話,就沒太大的必要了,因爲文本傳輸量很低,按照正常流程發送即可。
3.此篇文章的代碼是基於PhalApi框架,語法都比較簡單,有過ORM操作經驗的同學應該都看得懂
4.此篇文章主要講解APP的秒發功能,WEB端不是特別需要這個功能,因爲現代網絡足以我們的PC一次性發送很多很多張圖片(10M/s,20M/s)
大方向討論一下整個執行流程:
客戶端調用發佈API,服務端進行發佈內容(),如果是有圖片,那麼客戶端還要額外調用一個上傳API(),在這個上傳API()還沒完成工作的時候,客戶端會直接告訴你發佈成功(其實當前是沒有上傳完成,後面有一個進程在拼命幫你上傳着呢),然後客戶端會把你發的文字和圖片暫時拼接好顯示給你看(當前只有你能看到,你朋友圈其他人是看不到的),然後等待着上傳API()的結果/當然也可能上傳超時(通常一分鐘內會出結果),如果成功的話則順利上傳,失敗的話則報發送失敗,但是在等待結果的一分鐘之內,他會先讓你覺得你已經發送了,除非上傳失敗,纔會在後來提醒你。
那麼讓我們在技術層面來分析一下這套機制吧:
當我們點上右上角的發送鍵後,有兩個進程在同時啓動,其中一個進程是幫你上傳文本並且告訴你已經發送成功啦(),另外一個進程是偷偷去上傳你發的圖片(),具體代碼如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
//正常獲取數據(文本,圖片,位置信息等)
…
相關文章
-
如何啓用Apache的PHP-FPM多實例
PHP-FPM 作爲 FastCGI 進程管理器而廣爲熟知,它是 PHP FastCGI 實現的改進,帶有更爲有用的功能,用於處理高負載的服務器和網站。下面就一起來學習學習,更多內容請關注應屆畢業生網! 新功能擁有具有優雅(graceful)啓動/ -
PHP如何開發paypal支付插件
品牌型號:vivoY73s系統:Funtouch OS_10.5軟件版本:微信8.0.11 以微信8.0.11爲例,建微信羣可以在微信界面發起羣聊進行選擇好友。分爲3步,步驟如下: -
如何實現PHP獲取表單數據與HTML嵌入PHP腳本
導語:如何實現PHP獲取表單數據與HTML嵌入PHP腳本,下面是小編給大家提供的操作講解,大家可以參考閱讀,更多詳情請關注應屆畢業生考試網。常用的自動全局變量如下所示: 1、GET方式功能:獲取get方式提交的數據格式:$_GET[for -
php發展和php應用爲什麼比asp強
PHP原始爲 Personal Home Page的縮寫,現已經正式更名爲 "PHP: Hypertext Preprocessor"的縮寫.注意不是"Hypertext Preprocessor"的縮寫,這種將名稱放到定義中的寫法被稱作遞歸縮寫發展和php應用爲什麼比asp強?就讓小 -
網站用php實現paypal整合步驟
所以今天我就來講講如何將你的網站和paypal進行整合。首先,去paypal申請一個號吧,資料都補充完整之後,我們就可以開始行動樂,對了,申請paypal時,要申請那種可以接受別人付款的帳號。接下來,我們就真正開始paypal與網站的整合 -
php使用ftp函數實現簡單上傳功能
php使用ftp函數實現的`一個簡單的文件上傳功能,供初學者參考。就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!php ftp函數 文件上傳。 複製代碼 代碼如下:<?php/**ftp上傳文件lin -
淺析PHP中Pear安裝及使用
pear是PHP的擴展和應用程序庫,包含了很多有用的類,安裝好php5.0後,pear實際上並沒有被安裝,安裝的方法如下,跟隨小編去瞧一瞧吧!1.在php目錄中雙擊。2.按照提示輸入一些設置信息,主要是要把局域網的`網關加上,如 ,pear要用這 -
WinXP如何安裝Apache+MySQL+PHP環境
安裝步驟:在整個wamp環境搭建中,本質的工作如下:1,配置系統對php中dll文件能默認處於調用狀態。在windos下,對dll文件系統默認處於調用狀態的,有兩種採用的方式。第一種是:把需要調用dll文件複製到C:windows system32(如果是W -
淺談如何實現PHP圖片裁剪與縮放
*exif_imagetype -- 判斷一個圖像的類型*功能說明:函數功能是把一個圖像裁剪爲任意大小的圖像,並保持圖像不變形*參數說明:輸入 需要處理圖片的 文件名,生成新圖片的保存文件名,生成新圖片的寬,生成新圖片的高*/// 獲得任意 -
php+mysql結合Ajax實現點贊功能完整實例
文章主要介紹了php+mysql結合Ajax實現點贊功能,以一個完整實例形式詳細分析了實現點贊功能中涉及的html頁面、Ajax功能及php方法的使用技巧,非常具有實用價值,需要的朋友可以參考下。要實現點贊功能,有多種實現方式,這