亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于WebSocket技術(shù)水文資源監(jiān)管系統(tǒng)的研究與實(shí)現(xiàn)

        2016-09-26 07:20:01蘇厚勤
        關(guān)鍵詞:信息系統(tǒng)

        陳 煒 蘇厚勤 柴 炯

        1(東華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 上海 200051)2(上海華虹計(jì)通智能系統(tǒng)股份有限公司 上海 200051)

        ?

        基于WebSocket技術(shù)水文資源監(jiān)管系統(tǒng)的研究與實(shí)現(xiàn)

        陳煒1蘇厚勤1柴炯2

        1(東華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院上海 200051)2(上海華虹計(jì)通智能系統(tǒng)股份有限公司上海 200051)

        水污染已成為當(dāng)前急需解決的難題,傳統(tǒng)方法和手段已不能滿足監(jiān)管應(yīng)用的需求。結(jié)合設(shè)計(jì)和實(shí)現(xiàn)一個(gè)水文監(jiān)管系統(tǒng)的實(shí)際項(xiàng)目,闡述系統(tǒng)的基本構(gòu)架和實(shí)現(xiàn)方式。利用JavaEE7和WebSocket協(xié)議實(shí)現(xiàn)了全雙工通信,很好地滿足了水文信息實(shí)時(shí)監(jiān)測(cè)、管理、分析和查詢需求。實(shí)際應(yīng)用表明,該系統(tǒng)不僅能減少網(wǎng)絡(luò)通信阻塞和計(jì)算資源浪費(fèi),同時(shí)也提升了分布式系統(tǒng)數(shù)據(jù)實(shí)時(shí)交互和訪問(wèn)的性能。

        WebSocket協(xié)議全雙工通信水文監(jiān)管Web地理信息系統(tǒng)

        2(Shanghai Huahong Jitong Smart System Co.,Ltd.,Shanghai 200051,China)

        0 引 言

        水利資源是國(guó)民經(jīng)濟(jì)和社會(huì)人文發(fā)展的命脈。隨著國(guó)民經(jīng)濟(jì)發(fā)展和居住相對(duì)聚集,水污染問(wèn)題已日益突出,在一定程度上已嚴(yán)重制約我國(guó)的經(jīng)濟(jì)和社會(huì)發(fā)展。如何監(jiān)管和治理水資源污染現(xiàn)象,已成為改革開(kāi)放以來(lái)各屆政府高度關(guān)注的重大民生實(shí)事。利用計(jì)算機(jī)信息化和物聯(lián)網(wǎng)技術(shù)改變水資源傳統(tǒng)的監(jiān)管方法及手段,由傳統(tǒng)水資源監(jiān)管向現(xiàn)代水資源監(jiān)管方法轉(zhuǎn)變,由工程水利向資源水利、可持續(xù)發(fā)展水利監(jiān)管方向轉(zhuǎn)變是必然趨勢(shì)。

        本文研究、設(shè)計(jì)、實(shí)現(xiàn)和描述了一種基于WebSocket通信技術(shù)的水資源監(jiān)管系統(tǒng)。應(yīng)用水文傳感器、微網(wǎng)、無(wú)線通信、GIS、百度地圖和物聯(lián)網(wǎng)相關(guān)技術(shù)予以集成規(guī)劃和設(shè)計(jì),采用JavaScriptAPI和Java語(yǔ)言等編程實(shí)現(xiàn)。該系統(tǒng)支持PC和移動(dòng)設(shè)備應(yīng)用,在共享最新水質(zhì)信息基礎(chǔ)上,提供了功能豐富、交互性強(qiáng)的Web地圖應(yīng)用,支持HTML5Web頁(yè)面特性,滿足水利資源實(shí)時(shí)監(jiān)視GIS信息展現(xiàn)的管理要求,為專業(yè)人士和監(jiān)管部門提供信息查詢和分析,為預(yù)防和治理水污染提供指導(dǎo)依據(jù)。

        本文研究和實(shí)現(xiàn)的系統(tǒng)對(duì)構(gòu)建一個(gè)水文檢測(cè)信息管理平臺(tái)具有一定借鑒性。

        1 實(shí)時(shí)通信交互方案的分析比較

        1.1Comet技術(shù)構(gòu)架交互方案的局限性

        當(dāng)前,大多數(shù)網(wǎng)站的實(shí)時(shí)交互方案采用Comet技術(shù)。Comet是一種Web應(yīng)用程序的基礎(chǔ)構(gòu)架。基于這種構(gòu)架,客戶端不需要顯式地向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器就能在數(shù)據(jù)發(fā)送變化時(shí),主動(dòng)以異步方式將變更后的數(shù)據(jù)推送至客戶端,使客戶端能實(shí)時(shí)反應(yīng)后端數(shù)據(jù)的變化。Comet技術(shù)不同于傳統(tǒng)的Ajax(AsynchronousJavaScriptandXML)技術(shù),因?yàn)锳jax默認(rèn)是無(wú)狀態(tài)的,需要客戶端向服務(wù)器發(fā)送一個(gè)異步請(qǐng)求獲得反饋。Comet技術(shù)是一種反向Ajax技術(shù),或稱為服務(wù)器端推送技術(shù)。

        Comet技術(shù)構(gòu)架的通信傳輸實(shí)現(xiàn)模式分為兩類,即長(zhǎng)輪詢模式和流模式。

        長(zhǎng)輪詢模式有別于定時(shí)輪詢模式。定時(shí)輪詢模式通常要求客戶端每隔一段時(shí)間就向服務(wù)器發(fā)送一個(gè)請(qǐng)求,為了達(dá)到實(shí)時(shí)性,間隔時(shí)間就要盡可能的小。這就有可能產(chǎn)生資源和帶寬的浪費(fèi),因?yàn)椴灰欢看握?qǐng)求都會(huì)返回有用的數(shù)據(jù)。長(zhǎng)輪詢模式是對(duì)定時(shí)輪詢的改進(jìn),方法是打開(kāi)一個(gè)連接服務(wù)器的請(qǐng)求,并保持一段時(shí)間,直到服務(wù)器端數(shù)據(jù)有更新數(shù)據(jù)返回或是連接超時(shí)[1]。長(zhǎng)輪詢模式減少了冗余的數(shù)據(jù)請(qǐng)求和網(wǎng)絡(luò)負(fù)載壓力,但是如果服務(wù)器端數(shù)據(jù)頻繁更新時(shí),它與定時(shí)輪詢模式并沒(méi)有本質(zhì)區(qū)別,性能也沒(méi)有什么優(yōu)勢(shì)。

        流模式是客戶端打開(kāi)一個(gè)與服務(wù)器的持久連接,服務(wù)器通過(guò)此連接向客戶端發(fā)送數(shù)據(jù)?;诹髂J降倪B接會(huì)一直保持開(kāi)啟,直至過(guò)期。流模式和長(zhǎng)輪詢模式相比,可以減少對(duì)服務(wù)器的頻繁請(qǐng)求,避免了連接服務(wù)器的延時(shí),但增加了帶寬占有量、易造成網(wǎng)絡(luò)通信阻塞。長(zhǎng)輪詢模式和流模式的處理流程分別如圖1和圖2所示。

        圖1 長(zhǎng)輪詢模式流程示意圖

        圖2 流模式處理流程示意圖

        長(zhǎng)輪詢和流模式兩種通信傳輸模式都不是真正意義上的實(shí)時(shí)通信技術(shù),是通過(guò)Ajax技術(shù)模擬的一種實(shí)時(shí)效果??蛻舳伺c服務(wù)器端的交互還是通過(guò)請(qǐng)求和應(yīng)答的方式交互,請(qǐng)求需要在服務(wù)器上存在一段時(shí)間,如果沒(méi)有數(shù)據(jù)返回,線程就一直處于空閑的狀態(tài)。為了實(shí)現(xiàn)實(shí)時(shí)反饋?zhàn)兏鼣?shù)據(jù)的通信效果,需要在半雙工的HTTP上模擬全雙工通信,一般需建立兩個(gè)連接分別用于處理客戶端與服務(wù)器端之間的雙向通信。這種模擬方法不僅增加了編程的復(fù)雜性,也增加了系統(tǒng)和網(wǎng)絡(luò)的資源消耗。

        1.2應(yīng)用WebSocket實(shí)現(xiàn)雙向通信的技術(shù)優(yōu)勢(shì)

        作為下一代Web標(biāo)準(zhǔn)的HTML5提供了許多新的特性,WebSocket就是其中一個(gè)非常引人注目的特性,被稱為“WebTCP”。其本質(zhì)就是基于TCP為客戶端與服務(wù)器端提供了一種Socket通信連接,使得客戶端與服務(wù)器端可以實(shí)現(xiàn)雙向通信。

        要建立一個(gè)WebSocket連接,客戶端需要向服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求,申請(qǐng)協(xié)議升級(jí)為WebSocket協(xié)議,服務(wù)器根據(jù)HTTPHeader識(shí)別請(qǐng)求類型,若為WebSocket請(qǐng)求,則升級(jí)為WebSocket連接,至此雙方就可以進(jìn)行全雙工通信了[2]。WebSocket協(xié)議通信模式中的握手過(guò)程如圖3所示。

        圖3 WebSocket協(xié)議通信模式中握手過(guò)程示意圖

        WebSocket與Comet技術(shù)構(gòu)架相比擁有更強(qiáng)的通信能力,真正實(shí)現(xiàn)了實(shí)時(shí)數(shù)據(jù)通信。一旦WebSocket連接建立,服務(wù)器和客戶端就可以實(shí)現(xiàn)數(shù)據(jù)的雙向流動(dòng),增強(qiáng)了服務(wù)器的推送能力。與HTTP協(xié)議相比,它的頭信息更為簡(jiǎn)潔,大大減少了冗余數(shù)據(jù)的傳輸。在用戶規(guī)模大,實(shí)時(shí)性能要求高的環(huán)境,對(duì)于降低網(wǎng)絡(luò)負(fù)載方面比傳統(tǒng)實(shí)時(shí)通信傳輸方式具有更大的優(yōu)勢(shì)。

        2 關(guān)鍵技術(shù)研究與實(shí)現(xiàn)

        建立一個(gè)基于WebSocket技術(shù)構(gòu)架的連接,需要在客戶端和服務(wù)器端同時(shí)實(shí)現(xiàn),在客戶端使用基于JavaScript的WebSocketAPI。首先使用WebSocket全球資源定位符協(xié)議URLP(universalresourcelocaterprotocol)接口創(chuàng)建一個(gè)WebSocket對(duì)象,URL參數(shù)指向需連接的服務(wù)器端的IP地址,以“ws://”或“wss://”為前綴,分別代表WebSocket和安全的WebSocket連接[3],protocol參數(shù)為雙方的連接所使用WebSocket的子協(xié)議名稱。核心代碼如下:

        申請(qǐng)WebSocket對(duì)象時(shí),需要考慮瀏覽器是否支持WebSocket。當(dāng)客戶端和服務(wù)器連接成功后,會(huì)觸發(fā)onopen消息,此時(shí)客戶端就可以通過(guò)send接口向服務(wù)器發(fā)送數(shù)據(jù);如果連接失敗,發(fā)送、接收數(shù)據(jù)失敗或者處理數(shù)據(jù)出現(xiàn)錯(cuò)誤,客戶端會(huì)觸發(fā)onerror消息;當(dāng)客戶端收到服務(wù)器端發(fā)送的數(shù)據(jù)時(shí),就會(huì)觸發(fā)onmessage消息,參數(shù)event中包含服務(wù)器端傳輸過(guò)來(lái)的數(shù)據(jù);當(dāng)客戶端接收到WebSocket服務(wù)器端發(fā)送的關(guān)閉連接請(qǐng)求時(shí),就會(huì)觸發(fā)onclose消息。四個(gè)觸發(fā)事件和觸發(fā)條件關(guān)系如表1所示。

        表1 觸發(fā)事件與條件關(guān)系表

        客戶端WebSocket連接的核心代碼如下所示:

        相比客戶端,創(chuàng)建WebSocket服務(wù)器端應(yīng)用有多種方案可供選擇,如JBoss(Java)、pywebsocket(Python)、Node.js(JavaScript)和tomcat7等[4]。JavaEE7為滿足HTML5 的開(kāi)發(fā)需求新增和修改了一系列API,使得創(chuàng)建一個(gè)WebSocket應(yīng)用變得相對(duì)簡(jiǎn)單,只需通過(guò)注釋方式就可實(shí)現(xiàn)與客戶端觸發(fā)事件相對(duì)應(yīng)的四個(gè)方法的完成。根據(jù)水文監(jiān)測(cè)數(shù)據(jù)的類型特點(diǎn),本文設(shè)計(jì)客戶端和服務(wù)器端的交互數(shù)據(jù)的格式采用Java腳本對(duì)象符號(hào)JSON(JavaScriptObjectNotation)格式,便于雙方解析數(shù)據(jù)。一個(gè)用于建立連接,解析客戶端JSON格式請(qǐng)求數(shù)據(jù),根據(jù)請(qǐng)求獲取數(shù)據(jù)庫(kù)數(shù)據(jù)、封裝成JSON格式消息并反饋和關(guān)閉本次通信連接的公共類的WebSocket核心代碼段概列如下:

        publicclassWebSocket{

        @OnMessage

        publicvoidonMessage(Stringmessage,Sessionsession)

        throwsIOException,InterruptedException{

        params=analyzeJSONObject(message)

        //解析客戶端發(fā)來(lái)的JSON類型的數(shù)據(jù)

        data=getData(params);

        //從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)

        session.getBasicRemote().sendText(data);

        //向客戶端返回?cái)?shù)據(jù)

        }

        @OnOpen

        publicvoidonOpen() {

        System.out.println(″建立連接″);

        }

        @OnClose

        publicvoidonClose() {

        System.out.println(″關(guān)閉連接″);

        }

        @OnError

        publicvoidonError(Sessionsession,Throwablet) {

        t.printStackTrace();

        }

        }

        至此,WebSocket客戶端和服務(wù)器端都已實(shí)現(xiàn)。為了建立一個(gè)WebSocket連接,首先由客戶端瀏覽器發(fā)送一個(gè)HTTP請(qǐng)求。該請(qǐng)求和通常的HTTP請(qǐng)求相似,但是包含了一些附加頭信息,其中附加頭信息“Upgrade:WebSocket”表示客戶端申請(qǐng)將通訊協(xié)議從HTTP協(xié)議轉(zhuǎn)換到WebSocket協(xié)議。請(qǐng)求字段中Sec-WebSocket-Key的值為客戶端隨機(jī)生產(chǎn),是一個(gè)基于base64編碼的16字節(jié)序列。服務(wù)器端在解析信息后,需要返回一個(gè)Sec-WebSocket-Accept字段,并將HTTP狀態(tài)碼設(shè)置為101,表明將協(xié)議轉(zhuǎn)換到WebSocket協(xié)議。客戶端驗(yàn)證Sec-WebSocket-Accept字段的信息符合要求,則握手成功建立連接。

        在建立連接后,由于網(wǎng)絡(luò)問(wèn)題或其他原因,可能會(huì)造成連接中斷,所以需要在通信過(guò)程中檢查連接狀態(tài),判斷是否需要重新連接。其核心代碼如下:

        為了實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)顯示,關(guān)鍵是要解決當(dāng)有新數(shù)據(jù)上傳到服務(wù)器時(shí),服務(wù)器能夠主動(dòng)把最新數(shù)據(jù)信息推送到客戶端,服務(wù)器端實(shí)時(shí)檢測(cè)數(shù)據(jù)更新并即時(shí)發(fā)布是其中的重要一環(huán)[5]。因此,為了使WebSocket能獲取最新數(shù)據(jù)而又不增加數(shù)據(jù)庫(kù)的負(fù)擔(dān),本文設(shè)計(jì)的系統(tǒng)在儲(chǔ)存最新數(shù)據(jù)時(shí),設(shè)置了一個(gè)全局變量IsUpdated用來(lái)判斷是否有采集到的最新數(shù)據(jù)。在WebSocket應(yīng)用的onMessage方法中不斷監(jiān)測(cè)IsUpdated的值,如果其值發(fā)生變化,即查詢數(shù)據(jù)庫(kù)并將數(shù)據(jù)封裝成JSON格式的消息文件推送至客戶端,其即時(shí)推送的具體處理流程如圖4所示。

        圖4 實(shí)時(shí)數(shù)據(jù)推送流程圖

        客戶端和服務(wù)器端通過(guò)進(jìn)程創(chuàng)建基于WebSocket技術(shù)的通信連接應(yīng)用功能后,系統(tǒng)就能利用服務(wù)器的推送功能實(shí)現(xiàn)對(duì)水文監(jiān)測(cè)數(shù)據(jù)的實(shí)時(shí)監(jiān)視和管控。

        3 系統(tǒng)設(shè)計(jì)

        3.1系統(tǒng)總體架構(gòu)設(shè)計(jì)

        水文監(jiān)管系統(tǒng)通過(guò)對(duì)各種水文傳感器數(shù)據(jù)的實(shí)時(shí)采樣,由微網(wǎng)組成的分布式網(wǎng)絡(luò)傳輸數(shù)據(jù),結(jié)合遠(yuǎn)程通信協(xié)議GPRS將數(shù)據(jù)匯集到管理中心。在系統(tǒng)的管理中心數(shù)據(jù)經(jīng)處理修正后,能在GIS地理信息平臺(tái)上顯示水文監(jiān)測(cè)點(diǎn)的實(shí)際狀況,能在大量水文監(jiān)測(cè)數(shù)據(jù)中進(jìn)行數(shù)據(jù)挖掘與分析,實(shí)現(xiàn)水文監(jiān)測(cè)信息實(shí)時(shí)監(jiān)視和即時(shí)管控,有效解決動(dòng)態(tài)即時(shí)管理方面的技術(shù)難題。該系統(tǒng)基于百度地圖API、HighstockAPI、Java語(yǔ)言、Oracle數(shù)據(jù)庫(kù)和WebSocket協(xié)議等相關(guān)技術(shù),采用B/S構(gòu)架模式,構(gòu)建了一個(gè)實(shí)時(shí)水文監(jiān)測(cè)管理系統(tǒng)[6]。根據(jù)水文監(jiān)測(cè)數(shù)據(jù)的特點(diǎn)和系統(tǒng)的應(yīng)用場(chǎng)景,整個(gè)系統(tǒng)采用分布式構(gòu)架[7]組成,具體如圖5所示。

        圖5 系統(tǒng)總體架構(gòu)視圖

        水文監(jiān)管系統(tǒng)主要由系統(tǒng)信息采集、數(shù)據(jù)存儲(chǔ)管理、數(shù)據(jù)挖掘分析和系統(tǒng)展示功能組成。

        1) 系統(tǒng)信息采集主要通過(guò)層次通信網(wǎng)絡(luò)模式將各個(gè)傳感器數(shù)據(jù)采集并匯集到信息采集平臺(tái)中。

        2) 數(shù)據(jù)的存儲(chǔ)管理主要通過(guò)關(guān)系式數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)。

        3) 數(shù)據(jù)挖掘分析主要通過(guò)相同特征數(shù)據(jù)的粒度聚合和數(shù)據(jù)倉(cāng)庫(kù)技術(shù),建立適合數(shù)據(jù)挖據(jù)分析的維度和事實(shí)表,以支持多種統(tǒng)計(jì)分析應(yīng)用。

        4) 系統(tǒng)展示主要采用B/S方式,Web服務(wù)器、應(yīng)用服務(wù)器、匯集服務(wù)器、終端PC機(jī)及移動(dòng)終端等設(shè)備,對(duì)水文信息情況進(jìn)行展示和監(jiān)測(cè)。

        根據(jù)系統(tǒng)總體構(gòu)架設(shè)計(jì),對(duì)應(yīng)的系統(tǒng)軟件結(jié)構(gòu)如圖6所示。其中:

        圖6 系統(tǒng)軟件結(jié)構(gòu)視圖

        1) 表示層的載體為瀏覽器,目前主流的瀏覽器都已經(jīng)支持WebSocket,包括IE10+、Chrome4+、Firefox4+、Opera11+等??蛻舳烁鶕?jù)不同的需求,發(fā)送相應(yīng)的請(qǐng)求,通過(guò)后臺(tái)處理模塊從服務(wù)器數(shù)據(jù)庫(kù)中獲取相關(guān)數(shù)據(jù),然后在百度地圖上顯示或用Highstock對(duì)數(shù)據(jù)進(jìn)行分析。

        2) 業(yè)務(wù)邏輯層主要負(fù)責(zé)三部分計(jì)算。① 對(duì)匯集服務(wù)器上傳的實(shí)時(shí)數(shù)據(jù)進(jìn)行修正并存儲(chǔ);② 處理客戶端的請(qǐng)求并返回相應(yīng)數(shù)據(jù);③ 支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)ETL(ExtractTransformLoading)處理和多種統(tǒng)計(jì)分析應(yīng)用。

        3) 數(shù)據(jù)層由支持系統(tǒng)應(yīng)用的數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)組成,包括水文監(jiān)測(cè)實(shí)時(shí)數(shù)據(jù)、水文歷史數(shù)據(jù)、基站注冊(cè)數(shù)據(jù)、節(jié)點(diǎn)注冊(cè)數(shù)據(jù)、網(wǎng)絡(luò)配置數(shù)據(jù)和水文統(tǒng)計(jì)數(shù)據(jù)等存儲(chǔ)、訪問(wèn)和管理。

        3.2系統(tǒng)模塊設(shè)計(jì)與實(shí)現(xiàn)

        系統(tǒng)主要由水文數(shù)據(jù)的采集處理、水文信息監(jiān)控、水文信息分析、設(shè)備網(wǎng)絡(luò)管理和系統(tǒng)管理等模塊和子系統(tǒng)組成。主要功能模塊如圖7所示。

        圖7 系統(tǒng)功能模塊示意圖

        (1) 數(shù)據(jù)采集處理模塊

        該模塊負(fù)責(zé)對(duì)匯集服務(wù)器上傳的水文實(shí)時(shí)數(shù)據(jù),匯集服務(wù)器上傳的數(shù)據(jù)位原始數(shù)據(jù),需要對(duì)一些數(shù)據(jù)進(jìn)行處理和一系列的轉(zhuǎn)換。對(duì)于一些錯(cuò)誤數(shù)據(jù)需要修正,然后存儲(chǔ)在數(shù)據(jù)庫(kù)中。為了能使系統(tǒng)正確地接收數(shù)據(jù),需要對(duì)采集設(shè)備發(fā)送控制命令,以便管理和保證設(shè)備的正常工作。系統(tǒng)數(shù)據(jù)采集上傳和命令的下發(fā)的具體過(guò)程如圖8所示。

        圖8 數(shù)據(jù)采集處理過(guò)程

        (2) 信息監(jiān)控模塊

        信息監(jiān)控模塊有三個(gè)子功能,分別為分布實(shí)時(shí)監(jiān)測(cè)、區(qū)域?qū)崟r(shí)監(jiān)測(cè)和區(qū)域變化監(jiān)測(cè)。這個(gè)模塊都是基于百度地圖的JavaScriptAPI開(kāi)發(fā)的。百度地圖JavaScriptAPI是一套由JavaScript語(yǔ)言編寫(xiě)構(gòu)建地圖的應(yīng)用程序接口,利用它能夠在網(wǎng)站中構(gòu)建功能豐富、交互性強(qiáng)的地圖應(yīng)用,并且支持HTML5特性,可以很方便地構(gòu)造實(shí)時(shí)GIS應(yīng)用。

        在開(kāi)發(fā)前需要申請(qǐng)一個(gè)密鑰(key),通過(guò)

        亚洲人妻av在线播放| 国产熟女露脸大叫高潮| 无套内谢孕妇毛片免费看看| 亚洲国产成人精品激情| 视频一区二区免费在线观看| 精品人妻av一区二区三区| 亚洲日本va中文字幕| 一区二区三区日韩亚洲中文视频 | 极品美女销魂一区二区三| 久久伊人亚洲精品视频| 挺进邻居丰满少妇的身体| 欧美成年黄网站色视频| 蜜桃在线播放免费一区二区三区 | 蜜桃成人精品一区二区三区| 亚洲色一区二区三区四区| 性一交一乱一伦一色一情孩交| 久久久久欧洲AV成人无码国产| 超短裙老师在线观看一区| 国产成人91久久麻豆视频| 色婷婷一区二区三区久久亚洲 | 亚洲性综合网| 一区二区三区在线日本| 国产欧美精品aaaaaa片| 午夜福利92国语| 中文无码日韩欧免费视频| 蜜桃国产精品视频网站| 国产精品女同久久久久电影院| 亚洲精品中文字幕无码蜜桃| 亚洲黄色性生活一级片| 精品熟女av中文字幕| 久久久国产乱子伦精品| 玩两个丰满老熟女| 欧美在线观看www| 被灌醉的日本人妻中文字幕| 成年女人免费视频播放体验区| 香蕉视频毛片| 亚洲天堂线上免费av| 亚洲欧美v国产一区二区| 亚洲黄色电影| 亚洲精品视频免费在线| 国产精品国产三级国产av品爱 |