精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

國內90%以上的 iOS 開發者,對 APNs 的認識都是錯的

移動開發
APNs 協議在近兩年的 WWDC 上改過兩次,2015年12月17日更是推出了革命性的新特性。但在國內傳播的博客、面試題里關于APNs的答案全都是舊的、錯的。

[[165663]]

前言:

APNs 協議在近兩年的 WWDC 上改過兩次,2015年12月17日更是推出了革命性的新特性。但在國內傳播的博客、面試題里關于APNs的答案全都是舊的、錯的。

正文:

對 APNs 的吐槽

APNs 是 Apple Push Notification service 的簡稱(注意 APNs 的大小寫, s不需要大寫)。

以下是我收集的一些關于 APNs 的吐槽,你先看下哪些吐槽比較“到位”:

答案會穿插在下文中。

APNs新聞

2014年6月份WWDC搭載iOS8及以上系統的iOS設備,能夠接收的最大playload大小提升到2KB。低于iOS8的設備以及OS X設備維持256字節。參考文檔:

[[165664]]

2015年6月份WWDC宣布將在不久的將來發布 “基于 HTTP/2 的全新 APNs 協議”,并在大會上發布了僅僅支持測試證書的版本。參考文檔:

2015年12月17日起,發布 “基于 HTTP/2 的全新 APNs 協議”,iOS 系統以及 OS X 系統,統一將最大 playload 大小提升到4KB。參考文檔:Apple Push Notification Service Update 12-17 2015

新舊 APNs 協議工作示意圖對比

接下來我們分別對新舊協議進行一下介紹:

反人類的舊APNs協議設計

在介紹新版 APNs 前,讓我們來吐槽下舊的基于二進制的 APNs 協議設計是多么反人類:

在理論上,推送分發的服務器要打開一個同 APNs 網關服務器的

連接,并保持這個連接。但在舊的協議下,APNs 服務卻不保證 socket 能維持這個連接。如果通道上沒有消息往來,空閑下來到話,socket將被路由掐斷。也就是說:APNs 連接說斷就斷,而你無能為力。有意思的是:在舊的協議下,如果服務器響應成功的話,你將不會收到任何回應,但是如果服務器響應失敗(例如,使用了一個非法的 Push token),服務器將返回了一個錯誤編碼,并關閉這個socket。最重要的是,你必須重新發送使用這個無效 token 以后發送的所有推送(詳情見示意圖)。因此,你可能一直不能確定你的推送是否成功的被 APNs 服務器接收。

成功了不響應,失敗了才響應,這個是最大的反人類。于是許多開發者想到了一個很 tricky 的辦法:利用這個“漏洞”,比如在每發送10條后故意發送一個錯誤的token,如果APNs有響應了,就可以確認 APNs 是處在可用狀態的,進而確認這10條消息是發送成功的。如果沒有響應就說明可能連接已經中斷,那么這10條消息很可能是丟失的,然后做進一步的處理。但代價顯而易見:將導致你們的推送系統性能低下。(本文中所說到“你們的推送系統”,如果是使用的第三方的SDK完成的推送服務,那么就是指SDK提供商所搭建的推送系統。如果是你們公司自己搭建的推送系統,那么就是指你們自己的推送系統。)蘋果有一個名為"feedback"的服務,我們可以定時調用這個服務來獲取invalid tokens的列表。這個服務你只要調用一次就可以獲得所有的invalid tokens 列表。所以,如果一個應用使用了很多不同公司的推送SDK,他們將會爭奪資源去輪詢查找invalid tokens列表。invalid token越多,你們的推送系統性能將越低。而且 APNs 只要一發生錯誤就關閉這個連接,然后重新連接。也就是“重啟” socket 連接。

示意圖:

圖中的 PN2 去哪里了?它被放到了 feedback 列表里,等待下次你調用 feedback 服務,然后重發。

為什么Apple要在舊APNs中設計出“重啟”的策略?為了效率。就像PC機出問題,我們總說“重啟能解決90%的問題”。

為了理解“重啟”策略,我們可以類比下,熟悉 Erlang/OTP 的朋友可能知道, Erlang/OTP 在處理錯誤方面有獨到之處:監督樹(supervision trees)。大致來說,每一個 Erlang 進程都由一個監督進程發起并監視。當一個進程遇到了問題的時候,它就會退出。當進程退出的時候,其監督進程會將其重啟。

(這些監督進程由一個引導進程(bootstrap process)發起,當監督進程遇到錯誤的時候,引導進程會將其重啟)

其思想是,快速的失敗然后重啟比去處理錯誤要快。像這樣的錯誤處理看起來跟直覺相反 —— 當錯誤發生的時候通過放棄處理來獲得可靠性。但是重啟的確是解決暫時性錯誤的靈丹妙藥。

這也可能讓你想到 DNS 服務發展史:

DNS 在設計之初是基于 UDP 的,顯然這樣的設計不能滿足當今社會的準確性的需求,于是涌現了如 DNSPod 這樣的基于 HTTP 的 DNS 解析服務。但是當時為什么這樣設計,實際也很好理解,UDP 效率高,一來一回網絡上傳輸的只有兩個包,而 HTTP則需要三次握手三個包,再一拆包,就需要四個包。這是受限于當時整個社會的帶寬水平較低,而現在沒人會感激 UDP 所節省的流量,所有人都在詬病DNS污染問題。這樣你也許就理解了,為什么舊的 APNs 設計如此反人類。這個是必經階段。

那么接下來就讓我們看看Apple為解決這些問題而推出的基于 HTTP/2 的全新 APNs 協議。

基于 HTTP/2 的全新 APNs 協議

來看下新版的 APNs 的新特性:

1)Request 和 Response 支持JSON網絡協議

2)APNs支持狀態碼和返回 error 信息

  • APNs推送成功時 Response 將返回狀態碼200,遠程通知是否發送成功再也不用靠猜了!

  • APNs推送失敗時,Response 將返回 JSON 格式的 Error 信息。

3)最大推送長度提升到4096字節(4Kb)

4)可以通過 “HTTP/2 PING ” 心跳包功能檢測當前 APNs 連接是否可用,并能維持當前長連接。

5)支持為不同的推送類型定義 “topic” 主題

6)不同推送類型,只需要一種推送證書 Universal Push Notification Client SSL 證書。

示意圖:

其中最大的變化就是基于了 HTTP/2 協議,采用了長連接設計,并提供 “HTTP/2 PING ” 心跳包功能檢測、維持當前 APNs 連接,解決了老 APNs 無法維持連接的問題。

而且新增的狀態碼特性,也解決了這個問題:無法獲知消息是否成功地從你們的推送系統投遞到了 APNs 上。理論上,你們可以保證消息是100%投遞到了APNs的,因為你可以準確的知道哪條消息到達了APNs,哪些沒到。重發特定失敗消息成為可能。

所以上文開頭的吐槽中第一條,有一句是“不到位的”,因為現在SDK的提供商能夠準確地告訴你哪些消息推送到APNs了,哪些沒有。

順便介紹下 HTTP/2:

HTTP/2 是 HTTP 協議發布后的首個更新,于2015年2月17日被批準。它采用了一系列優化技術來整體提升 HTTP 協議的傳輸性能,如異步連接復用、頭壓縮等等,可謂是當前互聯網應用開發中,網絡層次架構優化的首選方案之一。

Apple 對于 HTTP/2 的態度也非常積極,2015年5月 HTTP/2 正式發表后不久,便在緊接著6月召開的WWDC 2015大會中,向全球開發者宣布,iOS 9 開始支持HTTP/2。

而且如果我們要使用 HTTP/2,那么在網絡庫的選擇上必然要使用 NSURLSession。

我們都知道 HTTP/2 是復用 TCP 管道連接的,而且 HTTP/2 也以高復用著稱,這也使新的 APNs 協議更加高性能。(題外話:這點也同樣體現在 NSURLSession 底層對于每個 session 是對多個 task 進行連接的復用。)

Universal Push Notification Client SSL 證書

在開發中,往往一條內容,需要向多個終端進行推送,終端有:iOS、tvOS、 and OS X devices, 和借助iOS來實現推送的 Apple Watch。在以往的開發中,不同的推送,需要配置不同的推送證書:我們需要配置:dev證書、prod證書、VOIP證書、等等。而從2015年12月17日起,只使用一種證書就可以了,不再需要那么多證書,這種證書就叫做Universal Push Notification Client SSL 證書(下文統一簡稱:Universal推送證書)。

改進了,但仍需改進。還是有坑

APNs的確改進來不少,但仍有需要改進對地方。還是有坑:

除了獲取TLS證書比較復雜未解決外,還有一些坑:

文章開頭提到過以下這種情況:

很遺憾的告訴你,你的吐槽是“到位的”:你以后還得忍受這種反人類的設計。

這中間發生了什么?

當 APNs 向你發送了4條推送,但是你的設備網絡狀況不好,在 APNs 那里下線了,這時 APNs 到你的手機的鏈路上有4條任務堆積,APNs 的處理方式是,只保留最后一條消息推送給你,然后告知你推送數。那么其他三條消息呢?會被APNs丟棄。

有一些 App 的 IM 功能沒有維持長連接,是完全通過推送來實現到,通常情況下,這些 App 也已經考慮到了這種丟推送的情況,這些 App 的做法都是,每次收到推送之后,然后向自己的服務器查詢當前用戶的未讀消息。但是APNs也同樣無法保證這四條推送能至少有一條到達你的 App。很遺憾的告訴這些App,這次的更新對你們所遭受對這些坑,沒有改善。

為什么這么設計?APNs的存儲-轉發能力太弱,大量的消息存儲和轉發將消耗Apple服務器的資源,可能是出于存儲成本考慮,也可能是因為 Apple 轉發能力太弱。總之結果就是 APNs 從來不保證消息的達到率。并且設備上線之后也不會向服務器上傳信息。

所以上文開頭的吐槽中第一條,也有一句是“到位的”,因為現在SDK的提供商依然無法保證,消息推到了 APNs,APNs能推到 App 那里。

但Google Cloud Messaging就有這些特性。而且 GCM 現在也支持iOS設備了,那么 APNs 和 GCM 現在就形成了競爭關系。讓我共同期待 APNs 在2016年6月的 WWDC 的能有新的改進吧。

對App開發的影響

想使用新協議,如果你用的第三方推送,這里最明顯的操作,就是你必須更新到支持新協議的SDK版本。因為新協議需要 SDK 上傳你 app 的 bundle id ,生成各個平臺推送用的 topic。如果你們自己搭建的服務,則需要你自己上傳。老協議不用上傳。

新 APNs 支持 iOS6 等全版本推送內容達4096字節,舊 APNs 是14年6月之前只支持256字節,在此之后支持 iOS8 以上2048字節。以前受限于推送字節,比如推文章 url,開發者選擇超出256后推送id,甚至不判斷直接推 id,接收后再請求完整 url。一旦請求錯誤,推送內容可能丟失。現在可以避免了。

如何創建 Universal Push Notification Client SSL 證書

現在你知道什么是 Universal Push Notification Client SSL 證書了,那么如何創建它?

圖中其他方式,就叫做非 Universal 方式(下文簡稱:非 Universal 推送證書):

這里也推薦使用 Universal 推送證書來進行推送服務。詳細的創建步驟如下所示:

  • 選擇在 Certificates 欄下的“All”。

  • 點擊下圖中紅色邊框內的加號按鈕。

  • 選擇 “Production” 欄下的 “Apple Push Notification service SSL (Sandbox & Production)” 勾選后,點擊下一步。

  • 從 App ID 下拉菜單中選擇你需要的 App ID ,點擊下一步。

  • 這時會出現 About Creating a Certificate Signing Request (CSR)。

  • 根據它的說明創建 Certificate Signing Request。

  • 點擊下圖中的 “Choose File” 按鈕:

  • 上傳剛剛生成的 .certSigningRequest 文件 生成 APNs Push Certificate。

  • 下載證書。

  • 雙擊打開證書,證書打開時會啟動鑰匙串訪問工具。

  • 在鑰匙串訪問工具中,你的證書會顯示在 “證書” 中,注意選擇左下角的 “證書” 和左上角 “登錄”。

結束語

對于 APNs 而言,iOS 9 的這一更新是有劃時代意義的,請即刻敦促你們公司的服務端進行升級,或者使用支持新 APNs 協議的 SDK 進行推送服務。 文中如有錯誤,并請幫忙指正,反饋請發往微博@iOS程序犭袁

參考鏈接:

Configuring Push Notifications

APNs Provider API

HTTP/2 Protocol for iOS Push Notification Server(APNS)

責任編輯:倪明 來源: iOS程序犭袁的簡書
相關推薦

2021-09-01 14:38:35

鴻蒙HarmonyOS應用

2017-12-08 08:39:12

2012-10-16 09:33:18

iOS最年輕開發者

2020-02-11 17:15:09

開發者拋棄 Executors

2020-02-13 09:14:16

Executors開發Java

2015-10-30 08:59:34

進度落后程序員工作流程

2012-06-13 01:23:30

開發者程序員

2012-09-19 10:25:56

iPhone 5游戲開發者

2023-09-28 21:39:26

HutoolJava工具包

2014-03-11 10:17:42

HTML5iOS

2012-05-22 09:50:32

iOSiPhone

2016-04-05 10:31:59

ioswwdc2016

2013-08-29 09:53:48

開發者iOS 7

2018-01-04 08:54:35

iOS開發者應用

2015-10-21 13:42:54

iOS開發watch OS2

2014-04-04 17:13:13

iOSAndroid開發技巧

2015-03-25 11:12:35

iOS開發

2015-10-30 10:17:43

進度落后工作流程

2013-09-16 13:14:50

Android開發者優化
點贊
收藏

51CTO技術棧公眾號

aa一级黄色片| 777久久久精品一区二区三区| 一区二区三区精| 综合久久综合| 亚洲黄色www| 国产三级三级三级看三级| 日本在线www| 国产精品一区2区| 欧洲成人午夜免费大片| 视频国产一区二区| 日韩高清三区| 911精品国产一区二区在线| 免费超爽大片黄| av亚洲在线| 成人动漫视频在线| 国产精品美女在线| 日韩欧美三级在线观看| 欧美电影免费| 亚洲少妇激情视频| 国产精品二区视频| 久久不卡日韩美女| 欧美日韩中文字幕| 特大黑人娇小亚洲女mp4| 狠狠v欧美ⅴ日韩v亚洲v大胸 | 老汉色老汉首页av亚洲| 欧美日韩免费一区二区三区| 又粗又黑又大的吊av| 黄网站免费在线播放| 久久久国产午夜精品| 成人在线看片| 国产男女裸体做爰爽爽| 日韩国产精品久久久| 97国产一区二区精品久久呦| 制服丨自拍丨欧美丨动漫丨| 欧美禁忌电影网| 亚洲激情国产精品| 黑人巨大猛交丰满少妇| 日韩黄色三级| 精品视频999| 免费激情视频在线观看| 在线天堂新版最新版在线8| 亚洲综合图片区| 五月天男人天堂| 国产大片在线免费观看| 久久亚洲一区二区三区明星换脸| 国产精品国产精品| 亚洲精品无码专区| 国产成人在线视频网址| 91青青草免费在线看| 国产一区二区三区黄片| 久久精品国产第一区二区三区| 国产福利精品在线| 无码人妻久久一区二区三区不卡| 亚洲在线电影| 日产日韩在线亚洲欧美| 99re这里只有精品在线| 久久天堂精品| 国产精品国产亚洲伊人久久 | 日韩一区二区在线播放| 亚洲美女性囗交| 日韩大陆av| 91麻豆精品国产91久久久| √天堂资源在线| 麻豆国产精品| 精品国产第一区二区三区观看体验| a级大片免费看| 91成人午夜| 亚洲国产成人91精品| 波多野结衣影院| 美女少妇全过程你懂的久久| 亚洲欧洲av一区二区| 熟女少妇内射日韩亚洲| 国产精品久久观看| 九九热99久久久国产盗摄| 久久久精品人妻一区二区三区四| 黄色日韩在线| 国内精品400部情侣激情| 天天综合天天干| 免费观看成人av| 亚洲一区二区中文字幕| 成人久久久精品国产乱码一区二区 | 自拍偷拍国产精品| 4444亚洲人成无码网在线观看| 暧暧视频在线免费观看| 在线观看一区二区视频| 午夜剧场在线免费观看| 大桥未久女教师av一区二区| 亚洲美女又黄又爽在线观看| 日韩av毛片在线观看| 欧美色123| 国产黑人绿帽在线第一区| 国产精品一区二区人人爽| caoporn国产精品| 亚洲狠狠婷婷综合久久久| 污污影院在线观看| 在线视频欧美区| 国产大学生av| 不卡一区综合视频| 久久久亚洲精选| 日批视频免费观看| 成人a区在线观看| 亚洲一区二区三区色| 成年网站在线视频网站| 欧美日韩精品电影| 国产美女视频免费观看下载软件| 成人久久电影| 性色av一区二区三区红粉影视| 日韩国产成人在线| a亚洲天堂av| 在线视频一二三区| 美女网站视频一区| 亚洲第一中文字幕在线观看| 欧美乱大交做爰xxxⅹ小说| 亚洲精一区二区三区| 成人激情黄色网| 黄网站在线观看| 性欧美大战久久久久久久久| 国产精品自在自线| 欧美日韩国产传媒| 91爱视频在线| 黄色三级网站在线观看| 亚洲欧美在线视频| 又色又爽又高潮免费视频国产| 综合激情久久| 久久伊人精品天天| 中文字幕在线2018| 久久精品一区二区三区不卡牛牛| 欧美黑人在线观看| 欧美电影在线观看一区| 日韩在线观看网址| 一级黄在线观看| 欧美激情在线观看视频免费| 美女福利视频在线| 久久午夜影院| 国语自产精品视频在线看| a视频免费在线观看| 亚洲欧美自拍偷拍色图| 亚洲欧美日韩精品一区| 水蜜桃精品av一区二区| 国产精品久久久久久久久久ktv| 四虎精品在永久在线观看| 性做久久久久久久久| 黄色免费看视频| 一本色道久久综合一区| 久久久99爱| 伊人久久av| 亚洲老头同性xxxxx| youjizz在线视频| 2021国产精品久久精品| 欧美黄网站在线观看| 色天天色综合| 日韩免费精品视频| 都市激情一区| 欧美日韩国产一级| www.com.av| 激情图区综合网| 成人免费看片视频在线观看| 日韩在线观看一区二区三区| 欧美激情一区二区久久久| 亚洲免费黄色片| 午夜久久久久久久久| 菠萝菠萝蜜网站| 日日骚欧美日韩| 在线观看精品视频| 秋霞影院一区| 午夜精品在线观看| 精品亚洲综合| 欧美精品在线一区二区三区| 天天看片中文字幕| 成人午夜av电影| 久久久久久久久久久久久国产精品 | 欧美一区国产二区| 久久久91视频| 2017欧美狠狠色| 免费看涩涩视频| 国内精品久久久久久久影视蜜臀 | 性高潮久久久久久| 一区二区国产精品| 亚洲欧美综合一区| 亚洲精品aⅴ| 日本aⅴ大伊香蕉精品视频| av电影在线网| 欧美电影免费观看完整版| 男女视频免费看| 国产精品国产三级国产三级人妇| 51自拍视频在线观看| 国产精品嫩草99av在线| 亚洲视频在线二区| 成人搞黄视频| 国产精品三级在线| 国产福利在线免费观看| 国产香蕉一区二区三区在线视频| 国产美女主播在线观看| 精品日韩中文字幕| 日韩三级久久久| 91天堂素人约啪| 亚洲图片 自拍偷拍| 国产视频欧美| 亚洲自拍偷拍一区二区三区| 牛牛影视久久网| 成人啪啪免费看| 日韩影院在线| 欧美黑人极品猛少妇色xxxxx| 青青草在线免费视频| 日韩一区二区精品葵司在线| 亚洲欧美日韩激情| 亚洲一区二区三区自拍| 五月婷六月丁香| 91小视频免费看| 能看毛片的网站| 久久精品99国产国产精| 欧美日韩国产精品激情在线播放| 你懂的网址国产 欧美| 日韩亚洲不卡在线| 牛牛影视久久网| 国产v亚洲v天堂无码| 欧美美女被草| 国产精品成人免费电影| av白虎一区| 欧美高跟鞋交xxxxxhd| 免费a级在线播放| 国产一区二区三区四区福利| 欧美视频xxx| 欧美不卡123| 国产日产亚洲系列最新| 欧美性做爰猛烈叫床潮| 免费av网站在线| 亚洲高清在线视频| 久久99久久久| 亚洲视频 欧洲视频| 大吊一区二区三区| 欧美激情综合五月色丁香| 精品人妻互换一区二区三区| 99精品在线观看视频| 白丝校花扒腿让我c| 国产剧情一区在线| www.com久久久| 久久av中文字幕片| 第四色婷婷基地| 美女视频第一区二区三区免费观看网站 | 成年人视频在线观看免费| 亚洲欧美国产一区二区三区| 天天操天天舔天天干| 亚洲激情在线视频| 色丁香婷婷综合久久| 精品国产亚洲在线| 丁香六月天婷婷| 亚洲国产精品人人爽夜夜爽| 好吊视频一二三区| 亚洲精品电影网| 亚洲欧洲精品视频| 亚洲欧洲av一区二区| 成人福利在线| 国产一区二区三区精品久久久| 户外极限露出调教在线视频| 一本大道亚洲视频| 麻豆传媒在线观看| 麻豆乱码国产一区二区三区| 亚洲欧美成人影院| 国精产品一区一区三区有限在线| 福利网站在线观看| 欧美专区中文字幕| 中文另类视频| 成人在线播放av| 亚洲精品一区二区三区在线| 国产日韩久久| 九一亚洲精品| 樱花www成人免费视频| 你懂的成人av| 免费av观看网址| 日韩成人一级片| gogo亚洲国模私拍人体| 成人精品国产一区二区4080| 久久久亚洲av波多野结衣| 国产婷婷一区二区| 91视频综合网| 五月天一区二区三区| 波多野结衣理论片| 欧美一区二视频| 男人的天堂在线免费视频| 日韩性xxxx爱| 交100部在线观看| 国产精品日韩欧美综合| 91精品入口| 日本精品视频一区| 午夜日韩电影| 爆乳熟妇一区二区三区霸乳| 国产裸体歌舞团一区二区| yy1111111| 自拍偷自拍亚洲精品播放| 日韩精品在线免费视频| 欧美日韩国产在线观看| 天天操天天干天天爽| 久久精彩免费视频| 樱花草涩涩www在线播放| 成人在线视频福利| 亚洲男人都懂第一日本| 国内精品国产三级国产99| 久久av最新网址| 精品国产免费久久久久久婷婷| 久久久久国产免费免费| 久久久久久久久97| 欧洲在线/亚洲| 天天干免费视频| 久久亚洲国产成人| 日韩一区精品| 久久婷婷人人澡人人喊人人爽| 五月开心六月丁香综合色啪| 91精品91久久久中77777老牛| 国产一区二区中文字幕| 日韩丰满少妇无码内射| 午夜在线电影亚洲一区| 国产农村妇女毛片精品| 中文字幕av一区中文字幕天堂| 免费电影视频在线看 | 超碰cao国产精品一区二区| 亚洲欧美日韩国产成人综合一二三区| 亚洲清纯自拍| wwwxxx色| 亚洲综合色在线| 精品国产伦一区二区三区| 搡老女人一区二区三区视频tv| 免费成人直播| 久久精品第九区免费观看| 国产精品99一区二区| 自拍一级黄色片| 国产精品久久久久三级| 日韩电影在线观看一区二区| 精品在线观看国产| av不卡高清| 国产精品一区二区av| 欧美日韩国产欧| 91亚洲一区二区| 亚洲欧洲综合另类在线| 一区二区三区黄| 久久精品在线视频| 亚洲欧美综合久久久久久v动漫| 亚洲乱码国产乱码精品天美传媒| 日韩有码一区二区三区| 无码一区二区三区在线| 91久久精品一区二区三区| 日本大片在线观看| 国产成人精品最新| 黑人操亚洲人| 中国黄色片免费看| 中文字幕制服丝袜成人av| 伊人精品在线视频| 视频一区视频二区国产精品 | 国产99re66在线视频| 97久久夜色精品国产九色 | 性欧美xxxx交| 人人香蕉久久| 嫩草av久久伊人妇女超级a| 国产亚洲欧美一级| 伊人成人在线观看| 欧美xxxx综合视频| 99re6热只有精品免费观看| 久久视频这里有精品| 91麻豆免费在线观看| 波多野结衣爱爱| 久久中文精品视频| 亚洲2区在线| 日本在线xxx| 国产色爱av资源综合区| 在线观看xxxx| 欧美日韩999| 日韩欧美ww| 欧美三级理论片| 亚洲狠狠丁香婷婷综合久久久| 高潮一区二区三区乱码| 热99在线视频| 希岛爱理av一区二区三区| 制服.丝袜.亚洲.中文.综合懂| 偷拍一区二区三区| 成年人视频在线免费观看| 亚洲影院污污.| 亚洲永久免费| 午夜精品福利在线视频| 亚洲黄色片网站| 巨胸喷奶水www久久久免费动漫| 懂色av粉嫩av蜜臀av| 99r精品视频| 一本久道久久综合无码中文| 欧美激情免费在线| 国产影视精品一区二区三区| 久久精品无码一区二区三区毛片| 香蕉久久一区二区不卡无毒影院 | 欧美一级三级| 久久婷五月综合| 天天综合天天综合色| 91精品国产91久久久久游泳池| a级国产乱理论片在线观看99| 天堂在线亚洲视频| 日本爱爱小视频| 亚洲欧美另类国产| 精品国产亚洲一区二区三区在线| www.中文字幕在线| 亚洲精品国产视频| 国产露出视频在线观看| 国产精品一区二区三区四区五区|