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

HTML 5 Web Sockets應用初探

開發 前端
HTML 5之中一個很酷的新特性就是WebSockets,WebSockets是在一個(TCP)接口進行雙向通信的技術,PUSH技術類型,文章將詳細的介紹在客戶端上創建WebSocket服務器。

HTML 5之中一個很酷的新特性就是Web Sockets,在本文之前51CTO在《HTML 5 Web Socket:下一次Web通信革命揭幕》一文中已經詳細的為大家介紹過HTML 5 Web Sockets為Web通信帶來的改變,而本文將介紹通過PHP環境的服務器端運行Web Socket,創建客戶端并通過Web Sockets協議發送和接收服務器端信息。

什么是Web Sockets?

Web Sockets是在一個(TCP)接口進行雙向通信的技術,PUSH技術類型。同時Web Sockets仍將基于W3C標準,目前為止,Chrome和Safari的***版本瀏覽器已經支持Web Sockets了。

Web Sockets將會替代什么?  

Web Sockets可以替代Long Polling(PHP服務端推送技術),這是一個有趣的概念。客戶端發送一個請求到服務器,現在,服務器端并不會響應還沒準備好的數據,它會保持連接的打開狀態直到***的數據準備就緒發送,之后客戶端收到數據,然后發送另一個請求。

這有它的好處:減少任一連接的延遲,當一個連接已經打開時就不需要創建另一個新的連接。但是Long-Polling并不是什么花俏技術,他仍有可能發生請求暫停,因此會需要建立新的連接。

一些Ajax應用使用上述技術-這經常是歸因于低資源利用。試想一下,如果服務器在早晨會自啟動并發送數據到那些希望接收而不用提前建立一些連接端口的客戶端,這是一件多棒的事情啊!歡迎來到PUSH技術的世界!

***步:搞定Web Socket服務器  

文章會把更多的精力放在客戶端的創建而不是服務器端的執行等操作。作者使用的是基于Windows 7的XAMPP來實現本地運行PHP。

啟動Apache服務器

啟動Apache服務器

第二步:修改URLs和端口  

根據你之前的安裝修改服務器,下面是setup.class.php中的例子:

  1. public function __construct($host='localhost',$port=8000,$max=100)    
  2.     
  3.    $this->createSocket($host,$port);    
  4.   

瀏覽文件并在適當情況下進行更改。

第三步:開始創建客戶端  

下面來創建基本模板,這是我的client.php文件:

  1.  <!DOCTYPE html>    
  2. <html>    
  3. <head>    
  4. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>    
  5.     
  6. <title>Web Sockets Client</title>    
  7.     
  8. </head>    
  9. <body>    
  10. <div id="wrapper">    
  11.     
  12.     <div id="container">    
  13.     
  14.         <h1>Web Sockets Client</h1>    
  15.     
  16.         <div id="chatLog">    
  17.     
  18.         </div><!-- #chatLog -->    
  19.         <p id="examples">e.g. try 'hi', 'name', 'age', 'today'</p>    
  20.     
  21.         <input id="text" type="text" />    
  22.         <button id="disconnect">Disconnect</button>    
  23.     
  24.     </div><!-- #container -->    
  25.     
  26. </div>    
  27. </body>    
  28. </html>​  

我們已經創建里基本模板:一個chat log容器,一個input輸入框和一個斷開連接的按鈕。

#p#

第四步:添加一些CSS  

沒什么花俏代碼,只是處理一下標簽的樣式。

  1.  body {    
  2.     font-family:Arial, Helvetica, sans-serif;    
  3. }    
  4. #container{    
  5.     border:5px solid grey;    
  6.     width:800px;    
  7.     margin:0 auto;    
  8.     padding:10px;    
  9. }    
  10. #chatLog{    
  11.     padding:5px;    
  12.     border:1px solid black;    
  13. }    
  14. #chatLog p {    
  15.     margin:0;    
  16. }    
  17. .event {    
  18.     color:#999;    
  19. }    
  20. .warning{    
  21.     font-weight:bold;    
  22.     color:#CCC;    
  23. }  

第五步:Web Socket事件

首先讓我們嘗試并理解Web Socket事件的概念:

WebSocket事件

◆onopen: 當接口打開時

◆onmessage: 當收到信息時

◆onclose: 當接口關閉時

我們如何來實現呢?首先創建Web Socket對象。

  1. var socket = new Web Socket("ws://localhost:8000/socket/server/startDaemon.php"); 
  2.  

然后向下面這樣檢測事件:

  1.  socket.onopen = function(){    
  2.     alert("Socket has been opened!");    
  3. }  

當我們收到信息時這樣做:

  1.  socket.onmessage = function(msg){    
  2.     alert(msg); //Awesome!    
  3. }  

但我們還是盡量避免使用alert,現在我們可以把我們學的東西整合到客戶端頁面中了。

#p#

第六步:JavaScript  

首先我們將代碼放到jQuery 的 document.ready函數中,然后我們還要檢查用戶的瀏覽器是否支持Web Socket。如果不支持,我們就添加一個鏈向Chrome瀏覽器頁面的鏈接。

  1.  $(document).ready(function() {    
  2.     if(!("Web Socket" in window)){    
  3.         $('#chatLog, input, button, #examples').fadeOut("fast");    
  4.         $('<p>Oh no, you need a browser that supports Web Sockets. How about <a href="http://www.google.com/chrome">Google Chrome</a>?</p>').appendTo('#container');    
  5.     }else{    
  6.     
  7.     //The user has Web Sockets    
  8.     
  9.     connect();    
  10.     
  11.     function connect(){    
  12.         //the connect function code is below    
  13.     
  14.     }    
  15. });  

如你所見,如果用戶瀏覽器支持Web Socket,我們將執行connect()函數。這里是核心功能,我們將開始創建open、close和receive事件。我們將在我們的服務器定義URL。

  1. var socket;    
  2. var host = "ws://localhost:8000/socket/server/startDaemon.php";  

你可能會發現URL中怎么沒有http?恩,是的,這是一個Web Socket URL,使用了不同的協議。下面是URL分解圖示:

URL分解圖示

下面讓我們繼續完成connect()函數,我們將代碼放入try/catch塊,這樣如果代碼出現問題,我們能讓用戶知道。我們創建Web Socket,并將信息傳遞到message()函數,之后會做講解。我們創建我們的onopen、onmessage和onclose函數. 需要注意的是我們為用戶提供了端口狀態,這并不是必需的,但我們把它放進來主要是為了方便調試。

  1. CONNECTING = 0 
  2. OPEN = 1 
  3. CLOSED = 2 
  4.  
  5.  function connect(){    
  6.     try{    
  7.     
  8.     var socket;    
  9.     var host = "ws://localhost:8000/socket/server/startDaemon.php";    
  10.     var socket = new Web Socket(host);    
  11.     
  12.         message('<p class="event">Socket Status: '+socket.readyState);    
  13.     
  14.         socket.onopen = function(){    
  15.              message('<p class="event">Socket Status: '+socket.readyState+' (open)');    
  16.         }    
  17.     
  18.         socket.onmessage = function(msg){    
  19.              message('<p class="message">Received: '+msg.data);    
  20.         }    
  21.     
  22.         socket.onclose = function(){    
  23.              message('<p class="event">Socket Status: '+socket.readyState+' (Closed)');    
  24.         }               
  25.     
  26.     } catch(exception){    
  27.          message('<p>Error'+exception);    
  28.     }    
  29. }   

message()函數很簡單, 它將我們想展現給用戶的文本填入chat log容器內。 我們在socket事件函數中為段落(<p>)標簽創建適當的class,我們在message函數中只有一個段落結束標簽。

  1.  function message(msg){    
  2.     $('#chatLog').append(msg+'</p>');    
  3. }  

目前的成果
  
如果你已按上面教程按部就班的做的話,很好,我們已經創建了HTML/CSS模板、創建并建立Web Socket連接、通過創建連接保持用戶的進展更新。

目前的成果

第七步:發送數據
  
現在我們已經有了提交按鈕,但我們還需要監聽用戶按下鍵盤的事件,并運行send函數,下面的’13′便是回車鍵對應的ASCII碼。

  1.  $('#text').keypress(function(event) {    
  2.     if (event.keyCode == '13') {    
  3.         send();    
  4.     }    
  5. });  

下面是send()函數:

  1. function send(){    
  2.    
  3.    var text = $('#text').val();    
  4.    if(text==""){    
  5.        message('<p class="warning">Please enter a message');    
  6.        return ;    
  7.    }    
  8.    try{    
  9.        socket.send(text);    
  10.        message('<p class="event">Sent: '+text)    
  11.    } catch(exception){    
  12.    message('<p class="warning"> Error:' + exception);    
  13.    }    
  14.    
  15.    $('#text').val("");    
  16.    
  17.   

下面我們需要:

  1. socket.send();
  2.   

那些額外的代碼做了以下工作:檢測用戶是否什么都沒輸入卻仍點擊返回、清空input輸入框、執行message()函數。

#p#

第八步:關閉Socket
  
關閉Socket操作相當簡單,添加對斷開連接按鈕的click事件監聽就可以。

關閉Socket

  1.  $('#disconnect').click(function(){    
  2.     socket.close();    
  3. });  

完整JavaScript代碼

  1.  $(document).ready(function() {    
  2.     
  3.   if(!("Web Socket" in window)){    
  4.   $('#chatLog, input, button, #examples').fadeOut("fast");    
  5.   $('<p>Oh no, you need a browser that supports Web Sockets. How about <a href="http://www.google.com/chrome">Google Chrome</a>?</p>').appendTo('#container');    
  6.   }else{    
  7.       //The user has Web Sockets    
  8.     
  9.       connect();    
  10.     
  11.       function connect(){    
  12.           var socket;    
  13.           var host = "ws://localhost:8000/socket/server/startDaemon.php";    
  14.     
  15.           try{    
  16.               var socket = new Web Socket(host);    
  17.     
  18.               message('<p class="event">Socket Status: '+socket.readyState);    
  19.     
  20.               socket.onopen = function(){    
  21.                  message('<p class="event">Socket Status: '+socket.readyState+' (open)');    
  22.               }    
  23.     
  24.               socket.onmessage = function(msg){    
  25.                  message('<p class="message">Received: '+msg.data);    
  26.               }    
  27.     
  28.               socket.onclose = function(){    
  29.                 message('<p class="event">Socket Status: '+socket.readyState+' (Closed)');    
  30.               }             
  31.     
  32.           } catch(exception){    
  33.              message('<p>Error'+exception);    
  34.           }    
  35.     
  36.           function send(){    
  37.               var text = $('#text').val();    
  38.     
  39.               if(text==""){    
  40.                   message('<p class="warning">Please enter a message');    
  41.                   return ;    
  42.               }    
  43.               try{    
  44.                   socket.send(text);    
  45.                   message('<p class="event">Sent: '+text)    
  46.     
  47.               } catch(exception){    
  48.                  message('<p class="warning">');    
  49.               }    
  50.               $('#text').val("");    
  51.           }    
  52.     
  53.           function message(msg){    
  54.             $('#chatLog').append(msg+'</p>');    
  55.           }    
  56.     
  57.           $('#text').keypress(function(event) {    
  58.               if (event.keyCode == '13') {    
  59.                 send();    
  60.               }    
  61.           });       
  62.     
  63.           $('#disconnect').click(function(){    
  64.              socket.close();    
  65.           });    
  66.     
  67.       }//End connect    
  68.     
  69.   }//End else    
  70.     
  71. });  

第九步:運行Web Socket服務器

我們要輸入一些命令行,XAMPP提供了比較方便的shell選項。點擊XAMPP控制面板的’shell’按鈕并輸入:

運行WebSocket服務器

  1. php -q path\to\server.php
  2.  

現在你已經運行了Web Socket服務器!

大功告成!

大功告成

當頁面讀取后,將嘗試創建一個Web Socket連接,然后用戶可以輸入信息并從服務器接收信息。大家可以通過The Web Socket API了解HTML 5 Web Socket的***動態。

原文標題:HTML 5 Web Sockets 基礎使用教程

原文地址:http://blog.bingo929.com/html5-Web Sockets.html

【編輯推薦】

  1. HTML 5,神化運動進行時
  2. HTML 5 Web Socket:下一次Web通信革命揭幕
  3. HTML 5將給開發者帶來什么?
  4. HTML 5 Web SQL Database初探
  5. 從零開始構建HTML 5 Web頁面
責任編輯:王曉東 來源: 彬Go的博客
相關推薦

2010-03-03 08:36:49

HTML 5 Web

2009-09-08 13:47:11

SproutCoreHTML 5應用框架

2011-05-25 09:34:30

HTML5cssjavascript

2011-09-27 17:37:22

2011-07-27 09:30:21

HTML 5

2009-10-15 15:12:39

Equinox服務器端Equinox

2015-08-10 20:31:52

Amaze UIHTML 5

2010-07-28 08:41:17

HTML5Web移動應

2014-10-27 09:51:19

Web設計HTML

2011-03-09 09:08:47

HTML5AndroidiOS

2015-07-03 11:07:39

HTML5移動Web

2017-08-09 15:57:11

JavaScriptHtml5音頻

2011-06-07 15:14:09

HTML 5

2012-06-12 13:33:38

HTML5

2014-12-08 11:12:23

HTML6

2012-09-04 10:15:00

IBMdw

2012-05-15 09:42:06

2010-09-03 08:58:01

HTML 5

2012-06-07 15:51:40

HTML5

2012-05-23 13:00:37

HTML5
點贊
收藏

51CTO技術棧公眾號

国产精品乱子乱xxxx| 在线视频一区二区| 国产日产欧美视频| 高清性色生活片在线观看| 九九视频精品免费| 9.1国产丝袜在线观看| 在线看片中文字幕| 国产精品毛片视频| 欧美日韩成人高清| 国产www免费| 成人精品一区| 不卡在线视频中文字幕| 国产精品露脸av在线| 精品人妻在线播放| 欧美hd在线| 亚洲精品一区二区三区99| 妺妺窝人体色www在线观看| 四虎影院观看视频在线观看| 久久久亚洲欧洲日产国码αv| 51国产成人精品午夜福中文下载| 免费视频久久久| 红桃视频亚洲| 欧美成人合集magnet| 久久精品国产亚洲av久| 91国内精品白嫩初高生| 欧美日本国产视频| 妞干网在线免费视频| 成人免费观看在线观看| 亚洲欧美偷拍三级| 一本久道久久综合| 国产精品影院在线| 91免费精品国自产拍在线不卡| 91精品视频免费| 中文字幕丰满人伦在线| 男人的天堂亚洲| 欧美激情网友自拍| 黑人巨大精品一区二区在线| 日韩88av| 在线观看中文字幕亚洲| 国产ts丝袜人妖系列视频 | 亚洲无人区一区| 在线观看一区二区三区三州| 福利在线午夜| 久久久久久久久久久久久久久99| 久久国产精品亚洲va麻豆| 亚洲成人一二三区| 国产精品 欧美精品| 亚洲iv一区二区三区| 一区二区精品视频在线观看| 免费av成人在线| 国产精品第二页| 中文在线第一页| 免费看亚洲片| 欧美在线免费观看| 国产又粗又猛又黄视频| 日本在线观看不卡视频| 国产精品男人的天堂| 中文字幕乱码人妻二区三区| 日本不卡不码高清免费观看| 国产精品免费一区| 91丨九色丨蝌蚪丨对白| 狠狠狠色丁香婷婷综合激情| 成人性生交大片免费看视频直播| 国产又大又粗又长| 国产一区二区导航在线播放| 97久草视频| 免费av一级片| 91在线视频网址| 日本一区二区精品| 欧美边添边摸边做边爱免费| 中文字幕不卡一区| 久久久久久久久久久久久国产| 成人毛片av在线| 亚洲国产成人高清精品| 成 年 人 黄 色 大 片大 全| 2022成人影院| 欧美女孩性生活视频| 可以看的av网址| 免费日韩一区二区三区| 国产一区二区精品丝袜| 精品无码一区二区三区蜜臀| 国产一区二区三区四区三区四| 91国自产精品中文字幕亚洲| 最近中文字幕av| 国产精品1区2区3区在线观看| 精品久久久三级| 成年人视频免费在线观看| 中文av字幕一区| 999一区二区三区| 婷婷午夜社区一区| 91精品免费观看| 97人妻天天摸天天爽天天| 波多野结衣在线播放一区| 九九精品视频在线观看| 91丝袜一区二区三区| 国内精品久久久久影院薰衣草| 国产精品午夜av在线| 成人欧美亚洲| 亚洲国产一区在线观看| 国产一线二线三线在线观看| 日本精品在线观看| 国产午夜精品美女视频明星a级| 永久久久久久久| 久久精品在线| 成人免费观看网站| 91在线不卡| 婷婷中文字幕一区三区| 一区二区三区四区毛片| 综合亚洲自拍| 欧美激情2020午夜免费观看| 在线观看国产黄| 久久综合九色综合97婷婷| 欧美日韩在线免费观看视频| 日韩伦理三区| 亚洲国产成人在线视频| 亚洲精品久久久久久国| 肉肉av福利一精品导航| 精品欧美日韩| 青青在线视频| 欧美剧情片在线观看| 国产伦理片在线观看| 亚洲国产三级| 99高清视频有精品视频| 91精品专区| 在线一区二区三区四区五区 | 久久久成人精品视频| 欧美一区免费看| www.一区二区| 欧美性潮喷xxxxx免费视频看| 国产精品igao视频网网址不卡日韩| 亚洲人在线视频| 国产精品视频123| av电影一区二区| 欧美视频在线观看视频| 一级毛片精品毛片| 欧美另类69精品久久久久9999| 中文字幕人妻互换av久久| 久久精品人人做人人综合 | 欧美极品免费| 亚洲男人第一av网站| 亚洲久久在线观看| 91尤物视频在线观看| 日韩a级在线观看| 超碰成人福利| 性欧美在线看片a免费观看| 可以免费看毛片的网站| 亚洲动漫第一页| 成人做爰www看视频软件| 欧美日韩p片| 国产精选一区二区| 黄色污污视频在线观看| 亚洲成人网久久久| 1级黄色大片儿| 91色视频在线| 91网址在线播放| 日韩中字在线| 91情侣偷在线精品国产| 宅男在线观看免费高清网站| 日韩欧美亚洲另类制服综合在线| 精品97人妻无码中文永久在线| 国产精品99久久不卡二区| 欧美这里只有精品| 欧美大胆视频| 国产精品大陆在线观看| 91啦中文在线| 欧美大片一区二区| 少妇一级淫片免费放中国 | 国产高潮国产高潮久久久91 | 日本久久电影网| 中文天堂资源在线| 国产精品资源在线| 欧美二区在线视频| 精品久久电影| 亚洲一区国产精品| 蜜桃在线视频| 中文字幕日韩高清| www.麻豆av| 欧美色播在线播放| 亚洲色图第四色| 粉嫩一区二区三区在线看| 成人在线观看你懂的| 精品少妇av| 国产成人亚洲欧美| 二吊插入一穴一区二区| 久久夜色精品国产| 嫩草在线播放| 日韩一区二区三区高清免费看看| 青青草av在线播放| 国产精品久久久久久久久久免费看| 黑人巨大猛交丰满少妇| 亚洲一区黄色| 国产卡一卡二在线| 伊人春色之综合网| 99精品国产一区二区| 台湾佬成人网| 欧美精品久久久久| 在线观看精品一区二区三区| 精品久久久网站| 中文字幕有码无码人妻av蜜桃| 一区二区三区免费在线观看| 男人的天堂av网| 成人h版在线观看| 玖玖爱视频在线| 久久精品天堂| 国产精品一色哟哟| 欧美hentaied在线观看| 欧美日韩精品免费观看| 视频精品一区二区三区| 国产免费一区二区三区在线能观看| xxxx成人| 美女少妇精品视频| av网站无病毒在线| 亚洲精品丝袜日韩| 亚洲第一大网站| 欧美日韩夫妻久久| 无码人妻久久一区二区三区不卡| 亚洲宅男天堂在线观看无病毒| 91社区视频在线观看| 97精品国产露脸对白| 色哟哟免费视频| 久久99国内精品| 99久久国产宗和精品1上映| 一本久道久久久| 黄色激情在线视频| 欧美成熟视频| 日本xxxxx18| 色999日韩| 五月天国产一区| 国产精品免费不| 欧美区高清在线| 天天躁日日躁狠狠躁欧美| 国产精品我不卡| 91精品丝袜国产高跟在线| 7777精品久久久大香线蕉小说| 欧美激情三区| 国产在线久久久| 在线观看亚洲精品福利片| 国产精品午夜视频| 国产精品66| 国产欧美日韩视频| 成人在线观看免费视频| 国产精品美女www爽爽爽视频| 日日av拍夜夜添久久免费| 欧美在线免费视频| 波多视频一区| 国产成人精品在线视频| 91精品韩国| 国产精品久久久久久久久久久久久久| 玛雅亚洲电影| 国产精品成人一区二区| 国外成人福利视频| 国产在线日韩在线| 日本免费精品| 99在线视频播放| 久久香蕉精品香蕉| 蜜桃av噜噜一区二区三区| 一道本一区二区三区| 日本在线免费观看一区| 久久人体视频| 欧美大片免费播放| 在线国产欧美| 国产精品无码av在线播放| 男人天堂欧美日韩| 中文字幕av不卡在线| 激情综合色丁香一区二区| 色哟哟在线观看视频| 不卡一区二区三区四区| 亚洲熟妇无码av| 中文字幕在线播放不卡一区| 欧美爱爱小视频| 精品美女久久久久久免费| 精品不卡一区二区| 欧美人妖巨大在线| 亚洲成a人片77777精品| 亚洲精品动漫100p| 北岛玲一区二区三区| 久久精品亚洲一区| 91九色美女在线视频| 国产成人精品综合久久久| 日韩成人精品一区二区三区| 国产成人免费电影| 成人高清电影网站| a级片一区二区| 久久久久久久高潮| 日本高清免费观看| 91麻豆成人久久精品二区三区| 一级片黄色录像| 亚洲电影在线免费观看| 这里只有精品9| 精品国产成人系列| 成人福利在线| 欧美激情亚洲激情| 粉嫩91精品久久久久久久99蜜桃| 91成人理论电影| 精品久久91| 拔插拔插海外华人免费| 久久精品国产999大香线蕉| 特级西西人体4444xxxx| 亚洲婷婷国产精品电影人久久| 亚洲一区欧美在线| 日韩欧美一二三区| 日本暖暖在线视频| 欧美主播福利视频| 深夜激情久久| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲高清在线观看| 欧美三级电影一区二区三区| 欧美一级bbbbb性bbbb喷潮片| 豆花视频一区| 午夜精品视频在线观看一区二区 | 日韩理论片网站| 波多野结衣电影在线播放| 精品第一国产综合精品aⅴ| 日本中文字幕视频在线| 国产成人一区二区三区小说| 国产精品tv| 国产资源第一页| 狠狠色丁香婷综合久久| 国产精品suv一区二区88| 色中色一区二区| 天堂中文网在线| 欧美激情精品久久久久久黑人| 日韩欧国产精品一区综合无码| 欧美人与物videos另类| 日韩午夜av| 亚洲午夜久久久久久久久| 亚洲女人小视频在线观看| 在线免费一级片| 在线观看国产欧美| 欧美精品高清| 日韩精品久久一区| 日韩综合在线视频| 波多野结衣 在线| 欧美性少妇18aaaa视频| 秋霞欧美在线观看| 久久久久久久香蕉网| 91久久精品无嫩草影院| 日本美女爱爱视频| 国产一区二区精品久久91| 农村妇女精品一区二区| 91精品国产一区二区三区香蕉 | 亚洲同性同志一二三专区| 一级片免费网站| 粗暴蹂躏中文一区二区三区| 成人短视频软件网站大全app| 色呦呦网站入口| 国产精品99久久久久久似苏梦涵| 欧美成人三级视频| 日韩欧美美女一区二区三区| 亚洲男同gay网站| 99久热re在线精品996热视频| 亚洲高清成人| 国产精品无码一区二区三区免费 | 亚洲一区二区三区观看| 亚洲色图在线视频| 性欧美videos另类hd| 久久全球大尺度高清视频| 日本久久成人网| 国产自偷自偷免费一区| 国产精品国产三级国产普通话蜜臀| 91欧美日韩麻豆精品| 久国内精品在线| 牛牛精品成人免费视频| 激情网站五月天| 国产精品青草综合久久久久99| 国产一区二区三区视频免费观看| 久久久999精品| 精品久久对白| 午夜激情在线观看视频| 亚洲美女免费在线| 免费av网站观看| 国产精品久久久久久久午夜 | 国产农村妇女精品| 国产一区二区三区四区视频| 久久久久久国产精品美女| 国产精品免费大片| 亚洲一级片av| 偷拍与自拍一区| 日本成人网址| 精品午夜一区二区| 老色鬼久久亚洲一区二区| 日韩福利小视频| 日韩高清av一区二区三区| 成人在线视频免费| 精品一区二区三区无码视频| 国产亚洲精品超碰| 精品人妻一区二区三区浪潮在线 | 久久人人爽人人爽人人av| 久久久久久久精| 性欧美一区二区三区| 日韩美女毛茸茸| 欧美成人69| 欧美人与性囗牲恔配| 精品福利二区三区| 狠狠久久伊人中文字幕| 成人性生活视频免费看| 国产精品每日更新| 亚洲欧美综合一区二区| 91影院在线免费观看视频| 久久成人免费|