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

HTML5 WebSockets node.js實(shí)例教程

譯文
開發(fā) 前端
HTML 5 中WebSockets是極其重要的部分,它的一個(gè)好處之一是減少了不必要的網(wǎng)絡(luò)流量。

HTML 5 中WebSockets是極其重要的部分,它的一個(gè)好處之一是減少了不必要的網(wǎng)絡(luò)流量。它主要是用于在客戶機(jī)和服務(wù)器之間建立單一的雙向連接。這意味著客戶只需要發(fā)送一個(gè)請求到服務(wù)端,那么服務(wù)端則會進(jìn)行處理,處理好后則將其返回給客戶端,客戶端則可以在等待這個(gè)時(shí)間繼續(xù)去做其他工作,整個(gè)過程是異步的。

WebSockets應(yīng)用的場景是很廣泛的,當(dāng)需要實(shí)時(shí)顯示數(shù)據(jù)的時(shí)候(比如股票,實(shí)時(shí)聊天,對戰(zhàn)游戲等),用戶最期望的是不需要去刷新頁面,否則獲得的用戶體驗(yàn)是不佳的。而在最新的HTML 5標(biāo)準(zhǔn)中,出現(xiàn)了兩個(gè)解決該方面問題的規(guī)范,一個(gè)是服務(wù)端推送事件(Server Sent Events),另外一個(gè)是WebSockets,其中服務(wù)端推送事件由于在IE 中不能獲得原生支持,因此不在本文討論范圍之中。本文著重講解HTML 5中WebSockets的相關(guān)知識。首先我們還是來復(fù)習(xí)下在HTTP 的網(wǎng)絡(luò)世界中的基本架構(gòu),這是下一步學(xué)習(xí)的基礎(chǔ)。

客戶-服務(wù)器模式是網(wǎng)絡(luò)世界中最經(jīng)典的模式了,能允許多個(gè)用戶通過前端圖形界面的方式去,如下圖:

 

通常,客戶服務(wù)端模式分為兩層和三層。在三層結(jié)構(gòu)中,通常是出現(xiàn)在web應(yīng)用中,中間一層使用了各類的中間件服務(wù)器,分別如下兩圖所示:

 

 

我們來看下HTML 5 WebSocket的架構(gòu)圖,如下:

 

  

在HTML 5 WebSockets標(biāo)準(zhǔn)中,僅僅定義了一些列的API,這些API用來在客戶端和服務(wù)端之間建立“socket”連接。下面我們來學(xué)習(xí)使用node.js來進(jìn)行WebSockets的學(xué)習(xí)。

首先,到node.js的官網(wǎng)下載node.js,我們選用windows 版本就可以了。

 

下載安裝包后并選擇socket.io,這只需要在 安裝好的nodejs目錄下,運(yùn)行命令install就可以了,如圖:

 

 

#p#

然后,我們在nodejs目錄下建立一個(gè)簡單的js文件,命名為serverfile.js,然后編寫代碼如下:

  1.  var http = require('http');  
  2. var io = require('socket.io');  
  3.    
  4. var yourserver = http.createServer(function (request, response) {  
  5.     response.writeHead(250, { 'Content-Type''text/html' });  
  6.     response.end('Your WebSocket server is running');  
  7. }).listen(22222);  
  8.    
  9. var yoursocket = io.listen(yourserver).set('log', 1);  
  10.    
  11. yoursocket.on('connection'function (client) {  
  12.     client.on('message'function (data) {  
  13.         console.log('Client Message: ', data);  
  14.     
  15.         var current = new Date().getTime();  
  16.    
  17.         client.emit('YourMessageResponse', data + '->' + current);  
  18.  
  19. client.on('disconnect'function () {  
  20.  console.log('Your Client disconnected');  
  21. });  
  22.     });  
  23. }); 

然后重新在nodejs的目錄中輸入如下圖的命令,以啟動服務(wù)端:

這樣,服務(wù)端就已經(jīng)啟動了,下面來編寫客戶端,客戶端其實(shí)就是一個(gè)簡單的html頁面,代碼如下:

  1.  <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4.     <script src='http://localhost:22222/socket.io/socket.io.js'></script> 
  5. </head> 
  6. <body> 
  7.     <script> 
  8.         var HTML5WebSockets = {};  
  9.         HTML5WebSockets.socketio = {  
  10.             yoursocket: null,  
  11.    
  12.             initialize: function () {  
  13.    
  14.                 HTML5WebSockets.socketio.yoursocket = io.connect('http://localhost:22222');  
  15.    
  16.                 HTML5WebSockets.socketio.yoursocket.on('connect', function () {  
  17.                     HTML5WebSockets.socketio.log('You are connected to Server<br />');  
  18.                 });  
  19.    
  20.                 HTML5WebSockets.socketio.yoursocket.on('message', function (data) {  
  21.                     HTML5WebSockets.socketio.log('Server Response:  ' + data + '<br />');  
  22.                 });  
  23.               
  24.                 HTML5WebSockets.socketio.yoursocket.on('disconnect', function () {  
  25.                     HTML5WebSockets.socketio.log('You are disconnected from Server<br />');  
  26.                 });  
  27.    
  28.                 document.querySelector('#sendMes').onclick = function () {  
  29.                     HTML5WebSockets.socketio.sendMessageToServer(document.querySelector('#mes').value);  
  30.                     document.querySelector('#mes').value = '';  
  31.                 };  
  32.                 
  33.             },  
  34.             sendMessageToServer: function (data) {  
  35.                 HTML5WebSockets.socketio.yoursocket.send(data);  
  36.                 HTML5WebSockets.socketio.log('Message to Server: ' + data + '<br />');  
  37.             },            
  38.    
  39.             log: function (message) {  
  40.                 document.querySelector('#log').innerHTML += message;  
  41.             }  
  42.         }  
  43.     </script> 
  44.    
  45.     <div id='log'></div> 
  46.     <input type='text' id='mes' /> 
  47.     <button type='button' id='sendMes'>Send</button> 
  48.     <br />    
  49.     <script> 
  50.         HTML5WebSockets.socketio.initialize();  
  51.     </script> 
  52. </body> 
  53. </html> 

現(xiàn)在假設(shè)服務(wù)端已經(jīng)運(yùn)行后,我們可以直接在瀏覽器中輸入網(wǎng)址運(yùn)行,如下圖:

 

 

這個(gè)時(shí)候表示客戶端已經(jīng)和服務(wù)端連接上了(這個(gè)時(shí)候調(diào)用的是

HTML5WebSockets.socketio.yoursocket.on的方法)。

接下來我們在文本框中輸入一些要發(fā)送到服務(wù)端的信息,并點(diǎn)Send按鈕,則可以從日志信息中看到信息發(fā)送到服務(wù)端的提示,如下兩圖所示: 

 

 

同時(shí)我們也觀察下服務(wù)端的控制臺的輸出,如下所示:

 

可以看到服務(wù)端正確收到了來自客戶段的請求信息。

從上面的例子可以看到,node.js由于使用了Socket.io 模塊,大大減輕了使用WebSocket的難度,可以說是為WebSocket而生的。

接下來,我們看下如何對客戶端進(jìn)行廣播消息?所謂的廣播消息,就是將某個(gè)消息在同一時(shí)間發(fā)送給已連接服務(wù)端的所有客戶端,所有客戶端都能收到該消息。下面我們動手改造下服務(wù)端的代碼如下:

  1. var http = require('http');  
  2. var io = require('socket.io');  
  3.    
  4. var yourserver = http.createServer(function (request, response) {  
  5.     response.writeHead(250, { 'Content-Type''text/html' });  
  6.     response.end('Your WebSocket server is running');  
  7. }).listen(22222);  
  8.    
  9. var yoursocket = io.listen(yourserver).set('log', 1);  
  10.    
  11. yoursocket.on('connection'function (client) {  
  12.     client.on('YourcustomMessage'function (data) {  
  13.         console.log('Client Custom Message: ', data);  
  14.    
  15.         var current = new Date().getTime();  
  16.    
  17.         client.broadcast.emit('YourMessageResponse', data + '(broadcasted)->' + current);  
  18.     });  
  19.     client.on('disconnect'function () {  
  20.         console.log('Your Client disconnected');  
  21.     });  
  22. }); 

#p#

可以看到,唯一和之前服務(wù)端代碼不同的是使用了client.broadcast.emit方法,可以從Socket.IO 服務(wù)器將廣播消息發(fā)送給客戶端。并且為了驗(yàn)證我們是在同一時(shí)刻發(fā)送相同的消息給各個(gè)客戶端,我們設(shè)置了當(dāng)前的時(shí)間到current變量進(jìn)行返回。我們可以將該文件另存為serverfile2.js。然后同樣按上文的方法啟動服務(wù)端。

接下來編寫客戶端代碼如下:

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4.     <script src='http://localhost:22222/socket.io/socket.io.js'></script> 
  5. </head> 
  6. <body> 
  7.     <script> 
  8.         var HTML5WebSockets = {};  
  9.         HTML5WebSockets.socketio = {  
  10.             yoursocket: null,  
  11.    
  12.             initialize: function () {  
  13.    
  14.                 HTML5WebSockets.socketio.yoursocket = io.connect('http://localhost:22222');  
  15.    
  16.                 HTML5WebSockets.socketio.yoursocket.on('connect', function () {  
  17.                     HTML5WebSockets.socketio.log('You are connected to Server<br />');  
  18.                 });                 
  19.    
  20.                 HTML5WebSockets.socketio.yoursocket.on('YourMessageResponse', function (data) {  
  21.                     HTML5WebSockets.socketio.log('Server Custom Response: ' + data + '<br />');  
  22.                 });  
  23.    
  24.                 HTML5WebSockets.socketio.yoursocket.on('disconnect', function () {  
  25.                     HTML5WebSockets.socketio.log('You are disconnected from Server<br />');  
  26.                 });                 
  27.    
  28.                 document.querySelector('#sendCustMes').onclick = function () {  
  29.                     HTML5WebSockets.socketio.emitCustomMessageToServer(document.querySelector('#custMes').value);  
  30.                     document.querySelector('#custMes').value = '';  
  31.                 };  
  32.             },            
  33.    
  34.             emitCustomMessageToServer: function (data) {  
  35.                 HTML5WebSockets.socketio.yoursocket.emit('YourcustomMessage', data);  
  36.                 HTML5WebSockets.socketio.log('Custom message to Server: ' + data + '<br />');  
  37.             },  
  38.    
  39.             log: function (message) {  
  40.                 document.querySelector('#log').innerHTML += message;  
  41.             }  
  42.         }  
  43.     </script> 
  44.    
  45.     <div id='log'></div> 
  46.     <input type='text' id='custMes' /> 
  47.     <button type='button' id='sendCustMes'>Brodcast</button> 
  48.    
  49.     <script> 
  50.         HTML5WebSockets.socketio.initialize();  
  51.     </script> 
  52. </body> 
  53. </html> 

可以看到客戶端的代碼并沒有多大變化。接下來我們同時(shí)啟動多個(gè)瀏覽器打開這個(gè)客戶端的文件,如下圖:

 

這表明各個(gè)客戶端都已經(jīng)連接上服務(wù)端了,然后在其中的一個(gè)客戶端頁面中輸入任意內(nèi)容,點(diǎn)發(fā)送,則可以看到服務(wù)端的nodejs控制臺收到了該消息,并且同時(shí)將當(dāng)前時(shí)間附加到消息中,同時(shí)發(fā)送到各請求的客戶端,實(shí)現(xiàn)了廣播的功能,如下圖:

 

 

讀者可以進(jìn)一步對上面的nodejs例子進(jìn)行改造,就可以很容易實(shí)現(xiàn)如各類實(shí)時(shí)應(yīng)用了。

英文原文:HTML5 WebSockets Introduction

責(zé)任編輯:陳四芳 來源: 51CTO
相關(guān)推薦

2021-03-16 16:16:41

GeneratorWebsockets前端

2011-12-16 10:08:36

Node.js

2020-05-29 15:33:28

Node.js框架JavaScript

2009-09-18 11:44:05

Scala實(shí)例教程Kestrel

2013-11-01 09:34:56

Node.js技術(shù)

2015-03-10 10:59:18

Node.js開發(fā)指南基礎(chǔ)介紹

2014-02-19 16:28:53

Node.jsWeb工具

2014-08-26 11:46:46

QtAndroid實(shí)例教程

2020-03-17 13:24:04

微服務(wù)架構(gòu)數(shù)據(jù)

2011-11-01 10:30:36

Node.js

2011-09-08 13:46:14

node.js

2011-09-02 14:47:48

Node

2011-09-09 14:23:13

Node.js

2012-10-24 14:56:30

IBMdw

2011-11-10 08:55:00

Node.js

2015-07-15 10:32:44

Node.js命令行程序

2021-12-25 22:29:57

Node.js 微任務(wù)處理事件循環(huán)

2010-08-17 11:02:45

DIV CSS實(shí)例教程

2019-06-17 15:25:17

expandunexpandLinux

2015-06-23 15:27:53

HproseNode.js
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

中文字幕有码在线观看| 一级aaaa毛片| 美女亚洲一区| 欧美日韩精品福利| 欧美中日韩在线| 国产日本在线视频| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩网站免费观看高清| 国产裸体视频网站| 欧美片第1页| 一区二区三区中文字幕电影| 老司机精品福利在线观看| 这里只有精品6| 99国产精品久久久久久久成人热| 色婷婷久久一区二区| 日韩综合第一页| 日韩三级成人| 日本精品一区二区三区高清| 精品人妻人人做人人爽| 99精品老司机免费视频| 99re8在线精品视频免费播放| 国产欧美日韩91| 六月丁香激情综合| 樱桃成人精品视频在线播放| 中文国产成人精品| 亚洲做受高潮无遮挡| 免费一级欧美片在线观看网站| 日韩欧美中文第一页| 免费高清一区二区三区| 麻豆传媒视频在线观看免费| 国产午夜亚洲精品不卡| 国产亚洲福利社区| www.xxx国产| 久草这里只有精品视频| 国产精品三级网站| 精品国产一区二区三区四| 亚洲精品国产偷自在线观看| 中文字幕日韩av| 成人片黄网站色大片免费毛片| 国产精品nxnn| 337p日本欧洲亚洲大胆色噜噜| 欧美成人手机在线视频| 怡红院成人在线| 一本大道av一区二区在线播放| 国产精品专区在线| gogo高清在线播放免费| 一区二区三区四区精品在线视频| 国产av不卡一区二区| 视频免费一区| 国产精品国产三级国产aⅴ中文| 日本视频精品一区| 国产美女视频一区二区三区| 国产亚洲美州欧州综合国| 久久精品中文字幕一区二区三区| 黑人乱码一区二区三区av| 国产精品一区2区| 亚洲综合日韩在线| www.欧美国产| 成人激情小说乱人伦| 国产91免费视频| 日本久久一级片| 99re亚洲国产精品| 日本三级中国三级99人妇网站| 国产三区四区在线观看| 国产亚洲人成网站| 五月天国产一区| 欧美激情免费| 一区二区三区在线免费播放| 久久这里只有精品18| 国产福利片在线观看| 欧美丝袜第一区| 宅男噜噜噜66国产免费观看| 91p九色成人| 69堂精品视频| www.com日本| 在线成人动漫av| 日日骚久久av| 日韩黄色免费观看| 9国产精品视频| 国产成一区二区| 夜夜躁狠狠躁日日躁av| 国产精品12区| 麻豆av一区二区三区| 国产免费a∨片在线观看不卡| 中文字幕制服丝袜成人av| 嫩草影院中文字幕| 欧美色网一区| 日韩一区二区免费电影| 午夜不卡久久精品无码免费| 精品一区在线| 欧美精品做受xxx性少妇| 国产成人在线免费视频| 青青草97国产精品免费观看 | 欧美裸体xxxx极品少妇| 日韩精品――中文字幕| 免费高清在线视频一区·| 99re资源| 992tv免费直播在线观看| 亚洲一区二区综合| jizz大全欧美jizzcom| 91精品尤物| 一区二区中文字幕| 精品无码人妻一区二区三区品| 日韩影院免费视频| 国产精品亚洲综合| 最新国产在线观看| 懂色aⅴ精品一区二区三区蜜月| www.夜夜爽| 日韩美脚连裤袜丝袜在线| xvideos成人免费中文版| 日韩欧美亚洲视频| 精品制服美女久久| 欧美xxxx黑人又粗又长密月| 午夜羞羞小视频在线观看| 欧美性极品少妇| 五级黄高潮片90分钟视频| 欧美黄色一级视频| 国产精品美女主播| 内衣办公室在线| 亚洲成人av在线电影| 四虎1515hh.com| 日韩精品看片| 国产精品99久久久久久人 | 日韩有码视频在线| 黄色av网站免费| 99久久精品情趣| 影音先锋成人资源网站| 欧美aaa级| 国产亚洲精品美女久久久| 亚洲精品国产精品乱码| 成人性生交大片免费看中文网站| 日本精品免费视频| 欧美v亚洲v综合v国产v仙踪林| 亚洲午夜av久久乱码| 少妇一级淫片免费放中国| 成人成人成人在线视频| 妞干网视频在线观看| 久久久久久亚洲精品美女 | 国产社区精品视频| 精品国产乱码久久久久久久久| 青青青在线免费观看| 久久国产精品无码网站| 午夜精品福利一区二区| jizz欧美激情18| 99热国产在线中文| 欧美精品v日韩精品v韩国精品v| a级在线免费观看| 日日欢夜夜爽一区| 天堂社区 天堂综合网 天堂资源最新版 | 天堂av一区二区三区在线播放| 欧美大片免费看| 超碰在线人人干| 亚洲最新视频在线播放| 久久无码专区国产精品s| 欧美日韩一区二区国产| 国产亚洲欧美一区二区 | 国产精品久久久久久久| 91精品久久久久| 国产精品剧情一区二区在线观看| 4438成人网| 久草资源在线视频| av在线这里只有精品| 男人添女人下面高潮视频| 思热99re视热频这里只精品| 日韩av手机在线| 日本视频在线观看| 欧美成人aa大片| 日韩欧美视频在线免费观看| 久久久久久日产精品| 日韩无套无码精品| 国产精品99久久| 国产超碰91| 欧美香蕉视频| 久久精品国产欧美激情| 好男人www在线视频| 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲一区二区三区四区视频| 午夜伦理在线视频| 日韩不卡中文字幕| 自拍偷拍福利视频| 亚洲自拍欧美精品| 成年人免费观看视频网站| 久久爱www久久做| 成年人看的毛片| 成人三级视频| 国产精品久久7| 日韩中文在线播放| 欧美精品videosex极品1| 国产精品99999| 日韩精品一区二区三区三区免费| 日韩特级黄色片| 亚洲欧洲在线观看av| 亚洲天堂av网站| 精品综合久久久久久8888| 国产玉足脚交久久欧美| 精品产国自在拍| 翡翠波斯猫1977年美国| 日韩av超清在线观看| 欧美日本中文字幕| www亚洲人| 日韩高清a**址| 国产精品自拍电影| 色www精品视频在线观看| 欧美被狂躁喷白浆精品| 久久精品视频一区二区| 日本少妇一级片| 久久精品国产99久久6| 久久久亚洲精品无码| 91精品国产91久久久久久黑人| 欧美成熟毛茸茸复古| 精品一区二区三区中文字幕| 日韩av不卡电影| av在线视屏| 欧美精品一二区| 毛片在线看片| 在线播放精品一区二区三区 | 久久综合av免费| yjizz视频| 国产乱码精品一区二区三区五月婷| 久久久免费视频网站| 激情综合在线| 欧美另类videosbestsex日本| 日韩国产在线| 日韩福利影院| 亚洲精华一区二区三区| 国产亚洲情侣一区二区无| 久久99成人| 成人欧美一区二区三区在线| 欧美一区=区三区| 国产精品九九九| 日韩高清中文字幕一区二区| 国产91精品久久久| 乱人伦视频在线| 777国产偷窥盗摄精品视频| 福利在线导航136| 欧美巨大黑人极品精男| 在线观看男女av免费网址| 久久精品美女视频网站| 日本黄色片在线观看| 这里只有精品久久| 色的视频在线免费看| 亚洲欧美中文字幕| 极品美乳网红视频免费在线观看 | 国产高清一区二区三区| 亚洲日本va| 国产福利久久精品| 美女网站色精品尤物极品姐弟| 国产精品av一区| 成人激情自拍| 国产午夜精品一区| 亚洲激情播播| 亚洲成人自拍视频| 91久久高清国语自产拍| 黄色网zhan| 欧美激情亚洲| 欧美亚洲色图视频| 中文日韩在线| 日日摸天天爽天天爽视频| 免费人成精品欧美精品| 在线观看免费视频高清游戏推荐| 精品一区二区在线免费观看| 精品国产乱码久久久久久1区二区| 国产传媒日韩欧美成人| 怡红院一区二区| 91麻豆精品在线观看| 精品人妻无码一区| 国产精品国模大尺度视频| 中文字幕影音先锋| 精品国产福利在线| 中文字幕乱码人妻无码久久| 制服丝袜成人动漫| 天堂在线观看av| 中文字幕一精品亚洲无线一区| 国产精品一卡二卡三卡| 97视频国产在线| 福利精品一区| 成人av免费在线看| 蜜臀久久99精品久久一区二区| 先锋影音一区二区三区| 欧美黄色精品| 熟妇人妻va精品中文字幕| 精品午夜久久福利影院| 亚洲欧美日韩色| 中文字幕精品在线不卡| 麻豆成人在线视频| 色悠悠亚洲一区二区| 国产伦精品一区二区三区免.费| 亚洲精品一区二区在线观看| 国产区av在线| 高清一区二区三区日本久| yiren22亚洲综合| 国产精品一区二区三区免费观看| 国产成人久久| a级黄色片免费| 日韩制服丝袜av| 国模私拍在线观看| 亚洲三级在线观看| 欧美男人亚洲天堂| 欧美大片国产精品| 日日夜夜精品一区| 秋霞av国产精品一区| 日韩在线精品强乱中文字幕| 日本一区二区精品| 一区在线观看| 日本一二三四区视频| 国产日韩亚洲欧美综合| 日本五十路女优| 欧美久久高跟鞋激| 精品999视频| 8x拔播拔播x8国产精品| 日韩在线视频一区二区三区| 亚洲一区二区免费视频软件合集| 激情婷婷亚洲| 久久久精品视频国产| 国产亚洲一区二区三区四区 | 欧美三级中文字幕| 日色在线视频| 韩国v欧美v日本v亚洲| 高清一区二区三区av| 五月天婷亚洲天综合网鲁鲁鲁| 国产精品日韩精品欧美精品| xxxx视频在线观看| 亚洲欧美激情小说另类| 国产一级片一区二区| 亚洲精品一区二三区不卡| 97在线超碰| 成人高清在线观看| 亚洲综合中文| 亚洲网中文字幕| 日韩一区中文字幕| 在线观看黄色国产| 自拍偷拍亚洲欧美| 精品176极品一区| 亚洲国产精品www| 日本成人在线视频网站| 日韩毛片无码永久免费看| 色综合久久中文字幕| 日漫免费在线观看网站| 欧美专区在线播放| 免费黄色成人| 日韩av在线综合| 久久精品一区二区三区不卡牛牛| 国产精品久免费的黄网站| 日韩精品一二三四区| 免费日韩电影| 日本一区二区不卡高清更新| 秋霞电影一区二区| 99re6热在线精品视频| 欧美日产在线观看| 免费黄网在线观看| 91亚洲精华国产精华| 一区二区三区毛片免费| 性生活一级大片| 亚洲一区二区成人在线观看| 后入内射欧美99二区视频| 992tv成人免费视频| 杨幂一区二区三区免费看视频| 黄色片久久久久| 国产日产欧产精品推荐色| 最近国语视频在线观看免费播放| www.欧美精品一二三区| 免费观看亚洲视频大全| 国产免费黄色小视频| 久久免费精品国产久精品久久久久| 黄瓜视频在线免费观看| 少妇激情综合网| 免费精品一区| 凹凸国产熟女精品视频| 国产日韩av一区二区| 国产免费高清av| 久久久久久九九九| 久久99国内| 波多野结衣国产精品| 亚洲一区二三区| 黄色av网站在线免费观看| 91精品中文在线| 99av国产精品欲麻豆| 久久午夜精品视频| 日韩欧美一二三四区| 欧洲一区精品| 正在播放一区二区三区| 本田岬高潮一区二区三区| 波多野结衣在线电影| 久久久999精品| 天堂av一区二区三区在线播放| 中文字幕日韩综合| 天天av天天翘天天综合网| 午夜在线小视频| 国产一区二区久久久| 免费观看在线综合色| 国产午夜免费视频| 中日韩美女免费视频网址在线观看| julia中文字幕一区二区99在线| 91视频免费版污| 亚洲主播在线播放| 99riav在线| 久久影视中文粉嫩av| 国产精品亚洲视频| 中文字幕乱码人妻无码久久| 97香蕉超级碰碰久久免费的优势|