長連結實現app掃碼上傳
阿新 • • 發佈:2019-01-29
日常專案總結2
拖延症拖到現在,之前做的app端掃碼上傳的專案,今天突然想要整理記錄下來。
1、整體實現過程圖
1)後端返回二維碼
2)APP使用者掃碼
3)APP上傳圖片到圖片伺服器
4)圖片伺服器返回圖片資訊
5)APP將圖片返回給後端
6)後端將圖片儲存起來,並將儲存的ID給長連結
7)長連結返回ID給頁面
2、前端實現過程
結合兩張圖,整個流程應該大致有印象了,但是這裡面有一個概念:長連結,什麼是長連結,需要做進一步的瞭解。
3、長連結
這裡的長連結也就是我們時常聽到的Long Polling,它的實現原理是,當瀏覽器發起一次請求的時候,如果服務端沒有相關的資料,那麼此時不會立即返回,而是保持一段時間在返回。返回後,瀏覽器又繼續發起下一次的請求。
所以在app掃碼傳圖的過程也是如此,點選生成了二維碼之後,就開始Long Polling請求長連結,如果在這個過程中有使用者掃碼的話,就可以根據返回資訊再去獲取圖片,如果沒有使用者掃碼,也就沒有資料返回,那麼長連結保持到超時的時候就會返回且斷開,瀏覽器判斷此次請求結束後開始下一次請求。
整個專案的流程大致就是這樣,當然,還有很多實現的細節,例如廢棄請求的終止,二維碼失效的狀態等等。