国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

連夜擼了一個簡易聊天室

共 8484字,需瀏覽 17分鐘

 ·

2020-12-11 11:45

點擊上方藍色“小哈學Java”,選擇“設為星標

回復“資源”獲取獨家整理的學習資料!

分不清輪詢、長輪詢?不知道什么時候該用websocket還是SSE,看這篇就夠了。

所謂的“實時推送”,從表面意思上來看是,客戶端訂閱的內容在發(fā)生改變時,服務器能夠實時地通知客戶端,進而客戶端進行相應地反應??蛻舳瞬恍枰饔^地發(fā)送請求去獲取自己關心的內容,而是由服務器端進行“推送”。

注意上面的推送二字打了引號,這就意味著在現(xiàn)有的幾種實現(xiàn)方式中,并不是服務器端主動地推送,而是通過一定的手段營造了一種實時的假象。就目前現(xiàn)有的幾種技術而言,主要有以下幾類:

  • 客戶端輪詢:傳統(tǒng)意義上的輪詢(Short Polling)
  • 服務器端輪詢:長輪詢(Long Polling)
  • 全雙工通信:Websocket
  • 單向服務器推送:Server-Sent Events(SSE)
文中會以一個簡易聊天室的例子來分別通過上述的四種方式實現(xiàn),代碼地址
https://github.com/Rynxiao/mini-chatroom
(存在些許bug,主要是為了做演示用)

輪詢(Short Polling)

輪詢的實現(xiàn)原理:客戶端向服務器端發(fā)送一個請求,服務器返回數(shù)據,然后客戶端根據服務器端返回的數(shù)據進行處理;然后客戶端繼續(xù)向服務器端發(fā)送請求,繼續(xù)重復以上的步驟,如果不想給服務器端太大的壓力,一般情況下會設置一個請求的時間間隔。
shortPolling
使用輪詢明顯的優(yōu)點是基礎不需要額外的開發(fā)成本,請求數(shù)據,解析數(shù)據,作出響應,僅此而已,然后不斷重復。缺點也顯而易見:
  • 不斷的發(fā)送和關閉請求,對服務器的壓力會比較大,因為本身開啟Http連接就是一件比較耗資源的事情
  • 輪詢的時間間隔不好控制。如果要求的實時性比較高,顯然使用短輪詢會有明顯的短板,如果設置interval的間隔過長,會導致消息延遲,而如果太短,會對服務器產生壓力
代碼實現(xiàn)


var?ShortPollingNotification = {
??datasInterval: null,
??subscribe: function() {
????this.datasInterval = setInterval(function() {
??????Request.getDatas().then(function(res) {
????????window.ChatroomDOM.renderData(res);
??????});
????}, TIMEOUT);
????return?this.unsubscribe;
??},
??unsubscribe: function() {
????this.datasInterval && clearInterval(this.datasInterval);
??}
}


下面是對應的請求,注意左下角的請求數(shù)量一直在變化
在上圖中,每隔1s就會發(fā)送一個請求,看起來效果還不錯,但是如果將timeout的值設置成5s,效果將大打折扣,如圖:

長輪詢(Long Polling)

長輪詢的基本原理:客戶端發(fā)送一個請求,服務器會hold住這個請求,直到監(jiān)聽的內容有改變,才會返回數(shù)據,斷開連接,客戶端繼續(xù)發(fā)送請求,重復以上步驟?;蛘咴谝欢ǖ臅r間內,請求還得不到返回,就會因為超時自動斷開連接。
longPolling
長輪詢是基于輪詢上的改進版本,主要是減少了客戶端發(fā)起Http連接的開銷,改成了在服務器端主動地去判斷所關心的內容是否變化,所以其實輪詢的本質并沒有多大變化,變化的點在于:
  • 對于內容變化的輪詢由客戶端改成了服務器端(客戶端會在連接中斷之后,會再次發(fā)送請求,對比短輪詢來說,大大減少了發(fā)起連接的次數(shù))
  • 客戶端只會在數(shù)據改變時去作相應的改變,對比短輪詢來說,并不是全盤接收

代碼實現(xiàn)

// 客戶端
var?LongPollingNotification = {
????// ....
????subscribe: function() {
??????var?that = this;

??????// 設置超時時間
??????Request.getV2Datas(this.getKey(),{ timeout: 10000?}).then(function(res) {
????????var?data = res.data;
????????window.ChatroomDOM.renderData(res);
????????// 成功獲取數(shù)據后會再次發(fā)送請求
????????that.subscribe();
??????}).catch(function?(error) {
????????// timeout 之后也會再次發(fā)送請求
????????that.subscribe();
??????});
??????return?this.unsubscribe;
????}

????// ....
}
筆者采用的是express,默認不支持hold住請求,因此用了一個express-longpoll的庫來實現(xiàn)。
下面是一個原生不用庫的實現(xiàn)(這里只是介紹原理),整體的思路是:如果服務器端支持hold住請求的話,那么在一定的時間內會自輪詢,然后期間通過比較key值,判斷是否返回新數(shù)據
  • 客戶端第一次會帶一個空的key值,這次會立即返回,獲取新內容,服務器端將計算出的contentKey返回給客戶端
  • 然后客戶端發(fā)送第二次請求,帶上第一次返回的contentKey作為key值,然后進行下一輪的比較
  • 如果兩次的key值相同,就會hold請求,進行內部輪詢,如果期間有新內容或者客戶端timeout,就會斷開連接
  • 重復以上步驟
// 服務器端

router.get('/v2/datas', function(req, res) {
??const?key = _.get(req.query, 'key', '');
??let?contentKey = chatRoom.getContentKey();

??while?(key === contentKey) {
????sleep.sleep(5);
????contentKey = chatRoom.getContentKey();
??}

??const?connectors = chatRoom.getConnectors();
??const?messages = chatRoom.getMessages();
??res.json({
????code: 200,
????data: { connectors: connectors, messages: messages, key: contentKey },
??});
});
以下是用?express-longpoll?的實現(xiàn)片段
// mini-chatroom/public/javascripts/server/longPolling.js

function?pushDataToClient(key, longpoll)?{
??var?contentKey = chatRoom.getContentKey();

??if?(key !== contentKey) {
????var?connectors = chatRoom.getConnectors();
????var?messages = chatRoom.getMessages();

????longpoll.publish(
??????'/v2/datas',
??????{
????????code: 200,
????????data: {connectors: connectors, messages: messages, key: contentKey},
??????}
????);
??}
}

longpoll.create("/v2/datas", function(req, res, next)?{
??key = _.get(req.query, 'key', '');
??pushDataToClient(key, longpoll);
??next();
});

intervalId = setInterval(function()?{
??pushDataToClient(key, longpoll);
}, LONG_POLLING_TIMEOUT);
為了方便演示,我將客戶端發(fā)起請求的timeout改成了4s,注意觀察下面的截圖:
可以看到,斷開連接的兩種方式,要么是超時,要么是請求有數(shù)據返回。
基于iframe的長輪詢模式
這種模式的具體的原理為:
  • 在頁面中嵌入一個iframe,地址指向輪詢的服務器地址,然后在父頁面中放置一個執(zhí)行函數(shù),比如execute(data)
  • 當服務器有內容改變時,會向iframe發(fā)送一個腳本
  • 通過發(fā)送的腳本,主動執(zhí)行父頁面中的方法,達到推送的效果
具體可以參看這里

Websocket

The WebSocket Protocol enables two-way communication between a client running untrusted code in a controlled environment to a remote host that has opted-in to communications from that code.
The protocol consists of an opening handshake followed by basic message framing, layered over TCP.
The goal of this technology is to provide a mechanism for browser-based applications that need two-way communication with servers that does not rely on opening multiple HTTP connections (e.g., using XMLHttpRequest or iframe and long polling).
The WebSocket Protocol attempts to address the goals of existing bidirectional HTTP technologies in the context of the existing HTTP infrastructure; as such, it is designed to work over HTTP ports 80 and 443 as well as to support HTTP proxies and intermediaries, even if this implies some complexity specific to the current environment.

特征

  • websocket是雙向通信的,設計的目的主要是為了減少傳統(tǒng)輪詢時http連接數(shù)量的開銷
  • 建立在TCP協(xié)議之上,握手階段采用 HTTP 協(xié)議,因此握手時不容易屏蔽,能通過各種 HTTP 代理服務器
  • 與HTTP兼容性良好,同樣可以使用80和443端口
  • 沒有同源限制,客戶端可以與任意服務器通信
  • 可以發(fā)送文本,也可以發(fā)送二進制數(shù)據。
  • 協(xié)議標識符是ws(如果加密,則為wss),服務器網址就是 URL
關于Websocket API方面的知識,這里不再作講解,可以自己查閱Websocket API MDN

兼容性

websocket兼容性良好,基本支持所有現(xiàn)代瀏覽器
websocket1

代碼實現(xiàn)

筆者這里采用的是socket.io,是基于websocket的封裝,提供了客戶端以及服務器端的支持
// 客戶端
var?WebsocketNotification = {
??// ...
??subscribe: function(args) {
????var?connector = args[1];
????this.socket = io();

????this.socket.emit('register', connector);

????this.socket.on('register done', function() {
??????window.ChatroomDOM.renderAfterRegister();
????});

????this.socket.on('data', function(res) {
??????window.ChatroomDOM.renderData(res);
????});

????this.socket.on('disconnect', function() {
??????window.ChatroomDOM.renderAfterLogout();
????});
??}
??// ...
}

// 服務器端
var?io = socketIo(httpServer);

io.on('connection', (socket) => {
??socket.on('register', function(connector) {
????chatRoom.onConnect(connector);

????io.emit('register done');

????var?data = chatRoom.getDatas();
????io.emit('data', { data });
??});

??socket.on('chat', function(message) {
????chatRoom.receive(message);

????var?data = chatRoom.getDatas();
????io.emit('data', { data });
??});
});
響應格式如下:

Server-Sent Events(SSE)

傳統(tǒng)意義上服務器端不會主動推送給客戶端消息,一般都是客戶端主動去請求服務器端獲取最新的數(shù)據。SSE就是一種可以主動從服務端推送消息的技術。
SSE的本質其實就是一個HTTP的長連接,只不過它給客戶端發(fā)送的不是一次性的數(shù)據包,而是一個stream流,格式為text/event-stream,所以客戶端不會關閉連接,會一直等著服務器發(fā)過來的新的數(shù)據流,視頻播放就是這樣的例子。
  • SSE 使用 HTTP 協(xié)議,現(xiàn)有的服務器軟件都支持。WebSocket 是一個獨立協(xié)議。
  • SSE 屬于輕量級,使用簡單;WebSocket 協(xié)議相對復雜。
  • SSE 默認支持斷線重連,WebSocket 需要自己實現(xiàn)。
  • SSE 一般只用來傳送文本,二進制數(shù)據需要編碼后傳送,WebSocket 默認支持傳送二進制數(shù)據。
  • SSE 支持自定義發(fā)送的消息類型。
基本的使用方法,參看SSE API

兼容性

目前除了IE以及低版本的瀏覽器不支持,基本支持絕大多數(shù)的現(xiàn)代瀏覽器。
sse2

代碼實現(xiàn)

// 客戶端
var?SSENotification = {
??source: null,
??subscribe: function() {
????if?('EventSource'?in?window) {
??????this.source = new?EventSource('/sse');

??????this.source.addEventListener('message', function(res) {
????????const?d = res.data;
????????window.ChatroomDOM.renderData(JSON.parse(d));
??????});
????}
????return?this.unsubscribe;
??},
??unsubscribe: function?() {
????this.source && this.source.close();
??}
}

// 服務器端
router.get('/sse', function(req, res) {
??const?connectors = chatRoom.getConnectors();
??const?messages = chatRoom.getMessages();
??const?response = { code: 200, data: { connectors: connectors, messages: messages } };

??res.writeHead(200, {
????"Content-Type":"text/event-stream",
????"Cache-Control":"no-cache",
????"Connection":"keep-alive",
????"Access-Control-Allow-Origin": '*',
??});

??res.write("retry: 10000\n");
??res.write("data: "?+ JSON.stringify(response) + "\n\n");

??var?unsubscribe = Event.subscribe(function() {
????const?connectors = chatRoom.getConnectors();
????const?messages = chatRoom.getMessages();
????const?response = { code: 200, data: { connectors: connectors, messages: messages } };
????res.write("data: "?+ JSON.stringify(response) + "\n\n");
??});

??req.connection.addListener("close", function?() {
????unsubscribe();
??}, false);
});
下面是控制臺的情況,注意觀察響應類型
詳情中注意查看請求類型,以及EventStream消息類型

總結

  • 短輪詢、長輪詢實現(xiàn)成本相對比較簡單,適用于一些實時性要求不高的消息推送,在實時性要求高的場景下,會存在延遲以及會給服務器帶來更大的壓力
  • websocket目前而言實現(xiàn)成本相對較低,適合于雙工通信,對于多人在線,要求實時性較高的項目比較實用
  • SSE只能是服務器端推送消息,因此對于不需要雙向通信的項目比較適用

參考連接

  • https://tools.ietf.org/html/rfc6455
  • https://developer.mozilla.org/en-US/docs/Web/API/WebSocket
  • https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events
  • http://www.ruanyifeng.com/blog/2017/05/websocket.html
  • https://www.ruanyifeng.com/blog/2017/05/server-sent_events.html
  • https://juejin.im/post/6844903955240058893
來源:www.cnblogs.com/rynxiao/p/13825438.html

題外話: 目前小哈正在個人博客(新搭建的網站,域名就是犬小哈的拼音)?www.quanxiaoha.com?上更新《Go語言教程》、《Gin Web框架教程》,畢竟Go自帶天然的并發(fā)優(yōu)勢,后端的同學還是要學一下的,這個教程系列小哈會一直更新下去,歡迎小伙伴們訪問哦~

END


有熱門推薦?

1.?還敢亂寫代碼??騰訊 Code Review 規(guī)范出爐!

2.?宕機了,Redis數(shù)據丟了怎么辦?

3.?CPU緩存L1/L2/L3工作原理

4.?2020 最爛密碼 TOP 200 大曝光!

最近面試BAT,整理一份面試資料Java面試BATJ通關手冊,覆蓋了Java核心技術、JVM、Java并發(fā)、SSM、微服務、數(shù)據庫、數(shù)據結構等等。

獲取方式:點“在看”,關注公眾號并回復?Java?領取,更多內容陸續(xù)奉上。

文章有幫助的話,在看,轉發(fā)吧。

謝謝支持喲 (*^__^*)

瀏覽 21
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 国产天堂视频| 成人免费视频一区二区| 青青草狠狠干| 亚洲a在线视频| 91大神在线资源观看无广告| 一区二区三区成人| 亚洲理论片| 久久久久久久精| 亚洲精品久久久久久久久蜜桃| 操b视频在线播放| 91精品国际| 东京热综合影院| 免费福利在线观看| 天天日夜夜艹| 狠狠躁18三区二区一区免费人 | 中文无码一区| 国产综合网站| 狠狠色五月亚洲91| 97综合视频| 伊人视频网| 日韩AV毛| 日韩女人性爱| 国产精品电影| www.91久久| 青青艹在线视频| 色中色在线视频| 精品成人久久| 欧美国产高清| 精品一区二区三区四区五区| 国产欧美精品一区二区三区| 安徽妇搡BBBB搡BBBB,另类老妇| 天堂在线视频| 中字无码| 91热视频| 国产一区不卡| 第一福利视频导航| 最新在线中文字幕| 91丨PORNY丨丰满人妻网站| 五月天激情小说网| 久久狼人| 一级黄色录像视频| 91亚洲国产精品| 色噜噜狠狠一区二区三区| YOUjiZZ欧美大全| 国产一级影院| av久| 18禁网址| 日韩视频在线免费观看| h片在线| H片在线播放| 91资源在线观看| 久久久无码视频| 亚洲一区二区AV| 狼人一区二区| 欧美成人中文字幕在线| 国产成人无码一区二区在线播放| 成人精品一区日本无码网站suv/| 国产精品卡一| 中国AV网| 欧美日韩性色无码免费| 色综合99久久久无码国产精品 | 天天日很很操| 少妇被躁到高潮无码| 免费在线观看AV| 在线观看中文字幕av| 高清无码视频免费观看| 无码三级在线观看| 日韩三级在线| 国产激情无码视频| www.sese| 日本女人操逼视频| 亚洲色图图片| 日韩欧美网站| 1024在线视频| 日韩人妻无码专区| 大香蕉操逼| 日本欧美在线| 三级片视频网站| 国产熟妇搡BBBB搡BBBB毛片 | 俺来俺去www色婷婷| 男女网站在线观看| 中国一级黄色A片| 久久亚洲福利视频| 中国乱伦视频| 成人性爱毛片| 操你啦青青草| 日本无码视频在线观看毒| 99九九99九九九99九他書對| 四季AV一区二区凹凸懂色桃花 | 中文字幕精品1| 成人免费视频一区二区三区| 天天日少妇| 国产精品九九九九九九| 99久久婷婷国产综合| 无码砖区| 国产久久久久久久久| 大炕上公让我高潮了六次| 操美女视频网站| 成人激情免费视频| 东北老女人操逼| 一级a免一级a做免费线看内裤的注意事项 | 中国AV网| 无套内射无码| 日韩中文字幕在线人成网站| 91成人视频在线免费观看| 夜夜夜叫天天天做| 内射免费网站| 婷婷丁香五月社区亚洲| 操操网| 久久久久久久久免费看无码| 成人午夜视频在线观看| 国产乱子伦一区二区三精品| 亚洲成人A片| 大香蕉亚洲| 国产福利视频在线观看| 老司机永久免费91| 亚洲AV无码成人网站国产网站 | 麻豆精品无码| 亚洲精品中文字幕成人片| 免费中文字幕av| 国产精品高潮无套内谢| 欧美三级大片| A片在线视频| 丰满欧美熟妇免费视频| 91牛| 91蜜桃婷婷狠狠久久综合9色| yOujiZZ欧美精品| 久久久中文字幕| 天天色天天干天天| 51成人精品午夜福利| 国产综合无码| 黄色视频毛片一一| 亚洲在线高清| 激情五月天丁香| 人人操在线播放| 亚洲视频一区二区| 偷偷操穴| AV无码不卡| 日韩激情视频在线观看| 亚洲视频在线观看网站| 无码av免费| 亚洲A片V一区二区三区| 丁香五月大香蕉| 亚州精品人妻一二三区| 天天看天天操| 性99网站| 久久久久久一区| 国精品无码一区二区三区在线秋菊| 成人H在线| 五月天久久久久| 一本久久精品一区二区| 影音先锋资源站| 日韩一级特黄A片免费观| 二区无码| 国产老熟女高潮毛片A片仙踪林| 无码做爰欢H肉动漫网站在线看| 人妻中文字幕av| 中文字幕免费观看视频| 成人精品一区二区三区中文字幕| 91网站免费看| 影音先锋男人站| 尤物在线视频| 西西西444www无码视频| 久草大香蕉在线| 操逼网五月天| 一区二区三区无码高清| 国产一级片在线播放| 久色| 婷婷激情丁香五月天| 亚洲插逼视频| 蜜桃视频com.www| 五月天婷婷久久| 一区二区三区免费看| 91偷拍视频| 色婷婷视频| 蜜桃av久久久亚洲精品| 午夜福利区| av网站在线免费观看| 成人亚洲视频| 伊人大香蕉在线视频| 国产免费一区二区三区网站免费 | 欧美自拍一区| 成人小说亚洲一区二区三区| 999国产精品视频| 无码精品一区二区免费| 天天干天天日| 第四色激情网| 亚洲中文字幕在线免费观看视频| 肏少妇女情人大骚逼直播一区二区 | 国产麻豆视频| 精品蜜桃秘一区二区三区观看| 简单AV网| 撸一撸AV| 黄片免费视频在线观看| 秋霞午夜成人无码精品| 九九九九AV| 欧美日韩成人网站| 超碰一区| 亚洲免费网| 亚洲成人在线播放| 日韩AV一区二区在线观看| 亚洲色图第一页| 九一香蕉视频| 亚洲黄色免费网站| 精品无码一| 中文字幕国产综合| 男人天堂婷婷| 亚洲人网站| 91精品人妻| 青青草原视频在线免费观看 | 熟妇综合| 中文字幕人妻日韩在线| 极品小仙女69| 91精品国产91久久久久久吃药| 少妇厨房愉情理伦BD在线观看| 色天使亚洲| 成人伊人| 亚洲欧洲免费看| 一级黄色免费视频| 色婷婷亚洲婷婷| 日韩AV免费| 男人天堂无码成人| 又黄又湿的视频| 欧美l∨视| 青青草免费在线视频| 青青精品| 日本有码在线| 西西人体大胆ww4444| 中文字幕浅井香舞被黑人俘虏| 一级婬片A片AAAAA毛片| 精品蜜桃秘一区二区三区在线播放| 欧美黄色片在线观看| 人人看人人摸| 国产精品一区二区三区不卡| 午夜福利视频91| 国产亚洲欧美在线| 爱爱视频日韩| 欧美日韩在线视频一区| 人人草人人看| 辽宁模特张雪馨视频最新| 一本色道久久综合亚洲怎么玩| 欧美激情影院| 日本无码一区二区三区| 成人在线观看网| 一区二区无码av| 北条麻妃在线一区| 久久免费视频网站| 日韩AV一二三| www国产精品| 日韩综合一区| 91九色麻豆| 乱伦婷婷| 色婷婷亚洲综合| 久久精品禁一区二区三区四区五区 | 国产精品无码7777777| 国产精品久久久久久久久| 国产日韩欧美成人| 日韩中文在线播放| JUY-579被丈夫的上司侵犯后的第7天,我 | 亚洲黄色免费在线观看| 日本少妇高清视频| 午夜特片| 黄色视频视频| 久久艹艹| 人人干日日干| 97在线超碰| 久久精品视频在线免费观看| 波多野结衣无码在线视频| 最新国产av| 亚洲少妇网| 国产精品婷婷久久久| 大香蕉伊人在线观看| 一本色道久久综合熟妇人妻| 黄色视频毛片| 成人网站视频在线观看| 国产成人精品国内自产拍免费看| 中文在线资源| 嫩BBB槡BBBB槡BBBB撒尿-百度| 国产精品色情A级毛片| 亚洲黄色一区| 黑人操逼| 久久亚洲精品视频| 无码少妇视频| 安徽妇搡BBBB搡BBBB,另类老妇| 中文字幕亚洲视频在线观看| 国产1区2区| 99久久人妻精品免费二区| av在线免费观看网址| 欧美一区二区无码视频| 久操国产视频| 水蜜桃视频免费观看| 大香蕉亚洲成人| 成人免费网站在线| 日日操视频| 91人妻人人人| 青青青草视频在线| 吴梦梦md0069| 色色色热| 无码免费播放| 欧美日韩肏屄视频| 天堂成人在线| 亚洲AAA电影| 97国产高清| 久久天天| 亚洲狼人综合网| 国产精品99久久久久的广告情况| 影音先锋乱伦电影| 欧美成人毛片一级A片| 一区在线观看| 国产一级二级三级片| 亚洲日韩高清无码| 中文在线第一页| 国产在线观看无码免费视频| 日韩无码AV电影| av一二三区| 亚洲日本高清| 日韩三级在线免费观看| 黄色免费观看网站| 樱桃AV| 免费视频在线观看一区| 五月丁香综合激情| 爆操无码| 自拍偷拍一区| 大黑逼AV| 亚欧久久| 亚洲无人禁区| 神马午夜秋霞不卡| 综合欧美国产视频二区| 欧美精品福利| 一级黄片免费看| 黄片日逼视频| 无码视频免费在线观看| 欧美国产在线观看| 久久夜色精品国产欧美乱极品 | 天天综合天天干| 18成人在线观看| 西西4444WWW无码精品| 五月亚洲六月婷婷| 亚州天堂| 亚洲AV无码乱码AV| 欧美婷婷综合| 天天色色婷婷| 欧美伦妇AAAAAA片| 亚色网址| 成人免费A片喷| 久久久久久久| 人人妻人人超| 狠狠爱一区| 六月激情网| 狠狠综合| 日韩夜夜操| 波多野结衣一区二区三区| 丰满人妻一区二区三区四区53| 欧美日韩成人电影| 中文字幕天堂在线| www.bbbb| 大香蕉午夜视频| 亚洲高清视频在线观看| 大香蕉午夜视频| 日韩A级片| 真人BBwBBWBBw另类视频| 91久久爽久久爽爽久久片| 天天爆操| 日韩在线一区二区| 色色五月天视频| 国产三级在线| 懂色AV一区二区三区国产中文在线 | 嫩BBB搡BBBB搡BBBB| 亚洲欧美日韩综合| 成人黄色在线看| 日韩av免费在线观看| 日韩无码黄色视频| 波多野成人无码精品69| 日韩香蕉网| 波多野结衣av无码| 国产成人无码一区二区在线播放| 五月AV| 黑人巨大翔田千里AⅤ| 中文一区二区| 狠狠干b| 国产又爽又黄视频| 日韩中文字幕在线观看视频| 日本欧美一级片| 亚洲无码99| 蝌蚪窝在线视频观看| 天天看天天射| 九色PORNY丨自拍蝌蚪| 91嫩草欧美久久久九九九| 国产乱伦免费视频| 亚洲日本黄色网址| 婷婷亚洲天堂| 人人草人人看人人摸| 久久91欧美特黄A片| 91逼| 国产精品777| 欧美日韩一区二区三区四区| 婷婷在线视频| 午夜福利视频91| 插菊花综合网亚洲| 91狠狠色丁香婷婷综合久久| 成人免费爱爱视频| 亚洲精品一区二区三区| 国产成人无码Av片在线公司 | 亚洲AV无码永久精品| 国产手机AV在线| 国产综合久久久7777777| 九九美女视频| 天天av天天av天天爽| www.欧美视频| 另类老妇性BBwBBw| av在线免费观看网站| 午夜免费AV| 国内成人精品| 天天操欧美| 国产天天操| 99精品热视频| 亚洲天堂女人| 婷婷国产亚洲精品网站| 人人做人人做人人做,人人做全句下一| 无码一区二区三区四季| 男女www视频| 日本黄色片在线播放| 偷拍三区| 成年人在线观看视频网站| 久久久精品无码| 色哟哟精品| 中文字幕乱码中文乱码91| 人妻无码一区二区三区免费| 精品一区二区三区免费毛片| 在线中文字幕亚洲| 天天影视综合网免费观看电视剧国产 | 国产无码午夜| 国产欧美在线观看| 91超碰人人操| 国产女人18水真多18精品| 野花av| 亚洲精品中文字幕在线观看| 国产一级A片免费播放| 日本超碰| 午夜福利大香蕉| 伊人久久久久久久久久久| 四川BBBB擦BBBB| 五月天国产| 18性XXXXX性猛交| 一区二区亚洲| 天天想夜夜操| 亚洲人人18XXX—20HD| 无码天堂| AV中文字幕网| 久久精品苍井空免费一区| 激情性爱婷婷色五月| 国产理论电影在线观看| AV无码一区二区三区| 苍井空无码一区二区三区| 国产Av一区二区三区| 大香蕉国产在线视频| 午夜三级视频| 天天干天天干天天日| 毛片精品| 国产无码电影网| 国产色片| 无码av免费精品一区二区三区| 激情三区| 婷婷开心色四房播播免费| 成人影音先锋| 97AV视频| 大香蕉伊人网视频| 精品无码一区二区三区爱与| 久久亚洲免费视频| 2019天天操| 搡BBBB搡BBB搡五十粉嫩| 青青草精品视频| 成人免费网站黄| 成人香蕉| 麻豆成人91精品二区三区| 蜜桃Av噜噜一区二区三| 国产无码影视| 污视频在线观看免费| 亚洲福利片| 国产成人无码精品久在线观看| 亚洲三级AV| 2025精品精品视频| 99热在线看| 特级欧美AAAAAA| 亚洲欧洲精品成人久久曰影片| 亚洲欧美视频| 中文字幕人妻一区| 日韩一级片免费| 日韩AV在线天堂| 亚洲vs无码秘蜜桃少妇小说| 综合五月| 国产成人精品麻豆| 91亚洲精品国产成人| 男人天堂AV片| 成人国产在线| 日本高清无码在线观看| 九色91PORNY国产| 亚洲人视频| 午夜伊人| 91精品视频网站| 7799综合| 五月天激情av| footjobvk| 欧美后门菊门交| 91干干干| 在线观看日韩欧美| 免费黄片视频大全| 99性爱视频| 亚洲清高毛无码毛片| 亚洲AV无码精品久久一区二区| 香蕉国产在线| 欧美久久国产精品| 久久国产无码| 狠狠操狠狠撸| 国产在线A片| 国产精品美女久久久久久久久| 亚洲欧美在线综合| 国产精品久久久久野外| 99热青青草| 久久9久| 豆花视频无码| 8050午夜一级免费| 香蕉成人A片视频| www天天干| 日韩区一中文字幕a∨| 国产精品成人免费| 久久911| 大香蕉伊人久久| 国产精品人妻AⅤ在线看| 婷婷狠狠操| 日本国产黄色| 色色丁香五月天| 操逼网123| 欧美丰满少妇人妻精品| 天天艹| 亚洲成人在线观看视频| 全部在线A片免费播放| 成人毛片在线播放免费| 亚洲天堂在线视频观看| 国产精品一区在线| 亚韩AV| 美日韩AV| 操B视频在线播放| 激情小说亚洲图片:伦| 高潮喷水在线观看| 中日韩在线视频| 香蕉国产2023| 美女做爱视频网站| 最新中文字幕AV| 91re| 黄片免费观看| 日韩人妻精品无码久久| 麻豆国产一区二区三区四区| 国产在线观看免费| 久久免费视频,久久免费视频| 走光无码一区二区三区| 国产青娱乐在线视频| 国产精品一二| 男人网站| 台湾成人视频| 97人妻精品一区二区三区图片| 天天搞天天干| 中文字幕在线播放第一页| 亚洲成人自拍无码| 在线观看日韩三级片av| 日本三级片在线| 污网站免费在线观看| 91精品免费| 欧美人妻日韩精品| 51妺嘿嘿在线电影免费观看 | 中文字幕熟女| 成人在线综合| 年轻女教师高潮2| 国产一区视频18| 天天色网站| 色tv在线| 中文字幕成人电影| 99久久婷婷国产综合精品电影 | 日韩欧美精品在线观看| www.俺去了| 69亚洲精品| 综合精品7799| 国产91在线看| 日逼高清视频| 久久久精品国产视频| 久九视频| 亚洲成人在线播放| 99久久综合| 巜人妻初尝按摩师BD中字| 亚洲小视频在线| 天天做夜夜操| 午夜AV在线观看| 尤物91| 色综合大香蕉| 手机看片国产| 天堂v视频| 五月丁香中文| 福利视频中文字幕| 91久久性奴调教| 午夜成人爽| 日韩人妻无码一区二区三区中文| 黄色日逼视频| 欧美做爱网站| 91玖玖| 一区二区三区四区久久| 欧一美一婬一伦一区二区三区黑人 | AV小说在线观看| 柠檬AV导航| 97AV在线| 在线视频你懂| 人人夜夜人人| 亚洲色涩| 人妻毛片| 日韩做爱网站| 欧美在线视频你懂的| 三级无码视频在线观看| 国产在线观看黄| r四虎18| 日本高清视频网站| 日韩AA视频| 97男人的天堂| 欧美色视频在线观| 丁香色综合人妻| 精品一区国产探花| 无码三级| 成人视频网站18| 欧美成人一区二区| 成人三级片在线观看| 九九久久精品| 91久久爽久久爽爽久久片| 欧美性爱小说| 精品免费国产一区二区三区四区的使用方法 | 日韩精品一区二区三区在线观看免费| 色婷婷电影网| 欧美性一区| 老鸭窝久久久| 七区九区一区在线| 亚洲日韩网站| 久久艹综合网| 91视频综合网| 黄色高清视频在线观看| 老熟女--91XX| 日韩精品免费一区二区在线观看| 激情五月丁香花| 91网站在线免费观看| 国产aaaaaaaaaaaaa| 人人看人人摸人人插| 亚洲一道本在线| 欧美午夜精品久久久久免费视| 亚洲一级无码视频| 三级99| 午夜国产在线视频| 先锋AV资源站| 中文字幕无码播放| 亚洲成人资源| 搡bbbb| jt33免费观看高清| 亚洲无码视频在线免费观看| 日本亲子乱婬一级A片| 大鸡巴久久久久久久| 四川BBB嫩BBBB爽BBBB| 欧美熟妇BBB搡BBB| 三级片网站在线观看| 久久熟女嫩草成人片免费| 色婷婷精品视频| 亚洲A在线观看| 蜜臀精品一区二区三区| aaa久久| 超碰天天爱| 水蜜桃网| 高清av在线| 精品中文字幕在线观看| 久操精品| 国产无码一区二区三区| 麻豆传媒视频观看| 艹逼电影| 中文字幕永久在线视频v1.0| 四川揉BBB搡BBB| 日韩性爱网址| 99热这里只有精品999| 午夜精品久久久久久久91蜜桃 | 日韩欧美综合一区| 乱子伦一区二区三区视频在线观看| 国产,亚洲91| 黄页网站视频| 自拍三级| 日韩在线观看中文字幕| 国产黄色视频在线看| 再深点好爽灬轻点久久国产| 三级片网站视频| 男人色天堂网| 亚洲第一av| 插逼综合网| 俺去也| 亚洲成人69| 一本色道久久综合狠狠| 亚洲成av| 亚洲日韩国产成人精品久久| 国产成人精品无码区在线| 人人爽久久涩噜噜噜网站| 久久999| 亚洲福利视频网| 成人毛片在线观看| 中文字幕亚洲视频| 亚洲欧洲久久电影| 黄色A网站| 拍拍拍免费视频| 日韩在线女优天天干| 一级在线播放| Japanese在线观看| 国产欧美日韩| 欧美后门菊门交| 日日干夜夜撸| 青青三级片| 精品人妻一区二区三区日产乱码| 九色丨蝌蚪丨老版熟女| 97人妻一区二区精品视频| 久久久久久免费毛片精品| 四虎综合| 99精品人妻| 91九色口爆吞精| 国产精品天天AVJ精麻传媒| 国产AV一区二区三区四区五区| 国产成人精品一区二区三区四区 | 亚洲Aⅴ| 蜜桃av无码一区三区| 亚洲日韩AV无码| 水蜜桃视频免费观看| 青青草原AV| 亚洲一区| 俺去了俺来也| 国产精品美女久久久久久久久| 日本三级片网址| 91探花秘在线播放偷拍| 北条麻妃无码精品AV| 91精品亚洲| 成人国产精品秘在线看| 超碰在线网| 午夜小电影| 中文字幕三级av片| 国产一级a毛片| 国产精品美女久久久| 成人做爰黄片视频免费| 中文字幕丰满熟妇人妻| 91热在线| 久久99久久99久久99国内少妇精品 | 中文字幕在线视频第一页| 无码av一区| 久久久久久精| 中文字幕在线视频观看| 四虎国产精品成人久久| 日韩成人无码影片| 日韩第五页| 欧美自拍视频在线| 国产精品国产精品国产专区不| 大香蕉在线网| 亚洲成人在线视频| 国际精品久久久| 人妻综合第一页| 在线天堂999| 亚洲狼人天堂| 五月天黄色小说| 大乳奶一级婬片A片| 大地8免费高清视频观看大全| 福利导航页| 人人天天爽| 大肉大捧一进一出免费阅读| 中文字幕日韩一级| 韩国精品一区二区三区| 白浆在线| 高清无码学生妹| 久久国产日韩| 十八女人高潮A片免费| 伊人小视频| 亚洲插逼| 99九九99九九九99九他書對| 欧美AAAAAAAAAA特级| 天天躁日日躁狠狠| 亚洲三级在线播放| 亚洲成人影片| 亚洲国产成人av| 国产主播第一页| 男人天堂视频网| 春色激情| 青草网在线观看| 久久97人妻AⅤ无码一区| 国产精品国产三级国产AⅤ原创| 一级婬片A片AAAA毛片A级| 爱爱导航| 西西337| 久草资源在线观看| 春色av| 日韩一级视频| 国产九色91回来了| 中文字幕免费看高清| 欧美韩日一区二区| 影音先锋国产AV| 亚洲AV激情无码专区在线播放| 国产一区二区三区视频| 波多野结衣高潮| 日韩高清成人无码| av五月| 国产夫妻自拍AV| 久久xx| 高清无码学生妹| 亚洲一区亚洲二区| 骚妇大战黑人15P| 蜜桃av秘无码一区二区三区| www.怡春院| 边添小泬边狠狠躁视频| 欧美AA片| 97久久超碰| 国产剧情一区二区| 夜夜爽妓女77777毛片A片| 天天看天天射| 欧美日韩操逼片| 成人在线第一页| 精品在线一区| 一道本在线| 国产熟女AV| 欧美成人性爱图片| 国产av一级| 国产乱在线| 成人黄色电影在线| 毛片在线观看网站| 神马Aⅴ| 精品热99| 黑巨茎大战欧美白妞小说| 无码三级片在线观看| 超碰在线免费播放| AV在线免费网站| 日韩人妻精品无码制服| 免费看欧美成人A片| 黄色中文字幕| 国产综合精品久久久久成人AV| 影音先锋一区| 午夜操逼逼| 日日爽| 91麻豆精品成人一区二区| 精品国产AV色一区二区深夜久久| 国产99自拍| 91大片| 激情婷婷在线| AV天堂电影网| 日本三级网| 日韩av在线不卡| 欧美日韩精品一区二区三区视频播放 | 久久嫩草精品久久久久| 2025毛片| 粉嫩av一区二区白浆| 91豆花成人网站| 亚洲天堂天天| gogogo日本免费观看高清电视剧的注意 | 亚州一级成人片| 亚洲无码一区在线| 天天操夜夜操狠狠操| 日韩三级在线免费观看| 中文字幕一区二区蜜桃| 蜜臀久久99精品| 高清日韩无码视频| 午夜性爽视频男人的天堂| 日本成人一区二区三区| а天堂中文在线资源| 国产精品的电影| 韩国AV三级| 青青操日日干| 熟女18p| 亚洲中文字幕av天堂| 激情视频综合网| 国产精品秘麻豆免费版现看视频 | 久久不射网站| 人妻字幕| 天天操b| 亚洲有码人妻| 五月婷婷免费视频| 亚洲精品成人一二三区| 成人毛片在线观看| 91国产精品在线视频| 日韩大屌| 亚洲一级黄色片| 超碰在线人人爱| 日韩免费无码视频| 日韩高清无码免费看| 俺来俺也去www色在线观看| 亚洲性网| 爆操无码| 欧美三级片在线视频| 国产精品免费久久影院| 天天色色天天| A片小视频| 欧美亚洲小说| 亚洲www在线观看| 人人看人人干| 国产淫荡视频| 国产精品网站在线观看| 91丨熟女露脸| 日韩熟妇无码中文字慕| 狠狠操狠狠操狠狠操| 操逼无码| 国产精品美女在线观看|