黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁技術文章
文章詳情頁

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

瀏覽:162日期:2022-08-28 09:55:25

Spring Boot+Socket實現與html頁面的長連接,客戶端給服務器端發消息,服務器給客戶端輪詢發送消息,附案例源碼

功能介紹

客戶端給所有在線用戶發送消息客戶端給指定在線用戶發送消息服務器給客戶端發送消息(輪詢方式)

注意:socket只是實現一些簡單的功能,具體的還需根據自身情況,代碼稍微改造下

項目搭建

項目結構圖

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

pom.xml

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.cyb</groupId> <artifactId>socket_test</artifactId> <version>0.0.1-SNAPSHOT</version> <name>socket_test</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!-- springboot websocket --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <!--guava依賴--> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version> </dependency> <!--fastjson依賴--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.46</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>

appliccation.properties

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

SocketTestApplication.java(Spring Boot啟動類)

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

WebSocketStompConfig.java

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

package com.cyb.socket.websocket;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.socket.server.standard.ServerEndpointExporter;@Configurationpublic class WebSocketStompConfig { //這個bean的注冊,用于掃描帶有@ServerEndpoint的注解成為websocket ,如果你使用外置的tomcat就不需要該配置文件 @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); }}

WebSocket.java(Socket核心類)

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

package com.cyb.socket.websocket;import java.io.IOException;import java.util.Map;import java.util.Set;import java.util.concurrent.ConcurrentHashMap;import javax.websocket.OnClose;import javax.websocket.OnError;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import javax.websocket.Session;import javax.websocket.server.PathParam;import javax.websocket.server.ServerEndpoint;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.google.common.collect.Maps;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;/** * @Author:陳彥斌 * @Description:Socket核心類 * @Date: 2020-07-26 */@Component@ServerEndpoint(value = '/connectWebSocket/{userId}')public class WebSocket { private Logger logger = LoggerFactory.getLogger(this.getClass()); /** * 在線人數 */ public static int onlineNumber = 0; /** * 以用戶的姓名為key,WebSocket為對象保存起來 */ private static Map<String, WebSocket> clients = new ConcurrentHashMap<String, WebSocket>(); /** * 會話 */ private Session session; /** * 用戶名稱 */ private String userId; /** * 建立連接 * * @param session */ @OnOpen public void onOpen(@PathParam('userId') String userId, Session session) { onlineNumber++; System.out.println('現在來連接的客戶id:' + session.getId() + '用戶名:' + userId); //logger.info('現在來連接的客戶id:'+session.getId()+'用戶名:'+userId); this.userId = userId; this.session = session; System.out.println('有新連接加入! 當前在線人數' + onlineNumber); // logger.info('有新連接加入! 當前在線人數' + onlineNumber); try { //messageType 1代表上線 2代表下線 3代表在線名單 4代表普通消息 //先給所有人發送通知,說我上線了 Map<String, Object> map1 = Maps.newHashMap(); map1.put('messageType', 1); map1.put('userId', userId); sendMessageAll(JSON.toJSONString(map1), userId); //把自己的信息加入到map當中去 clients.put(userId, this); System.out.println('有連接關閉! 當前在線人數' + onlineNumber); //logger.info('有連接關閉! 當前在線人數' + clients.size()); //給自己發一條消息:告訴自己現在都有誰在線 Map<String, Object> map2 = Maps.newHashMap(); map2.put('messageType', 3); //移除掉自己 Set<String> set = clients.keySet(); map2.put('onlineUsers', set); sendMessageTo(JSON.toJSONString(map2), userId); } catch (IOException e) { System.out.println(userId + '上線的時候通知所有人發生了錯誤'); //logger.info(userId+'上線的時候通知所有人發生了錯誤'); } } @OnError public void onError(Session session, Throwable error) { //logger.info('服務端發生了錯誤'+error.getMessage()); //error.printStackTrace(); System.out.println('服務端發生了錯誤:' + error.getMessage()); } /** * 連接關閉 */ @OnClose public void onClose() { onlineNumber--; //webSockets.remove(this); clients.remove(userId); try { //messageType 1代表上線 2代表下線 3代表在線名單 4代表普通消息 Map<String, Object> map1 = Maps.newHashMap(); map1.put('messageType', 2); map1.put('onlineUsers', clients.keySet()); map1.put('userId', userId); sendMessageAll(JSON.toJSONString(map1), userId); } catch (IOException e) { System.out.println(userId + '下線的時候通知所有人發生了錯誤'); //logger.info(userId+'下線的時候通知所有人發生了錯誤'); } //logger.info('有連接關閉! 當前在線人數' + onlineNumber); //logger.info('有連接關閉! 當前在線人數' + clients.size()); System.out.println('有連接關閉! 當前在線人數' + onlineNumber); } /** * 收到客戶端的消息 * * @param message 消息 * @param session 會話 */ @OnMessage public void onMessage(String message, Session session) { try { //logger.info('來自客戶端消息:' + message+'客戶端的id是:'+session.getId()); System.out.println('來自客戶端消息:' + message + ' | 客戶端的id是:' + session.getId()); JSONObject jsonObject = JSON.parseObject(message); String textMessage = jsonObject.getString('message'); String fromuserId = jsonObject.getString('userId'); String touserId = jsonObject.getString('to'); //如果不是發給所有,那么就發給某一個人 //messageType 1代表上線 2代表下線 3代表在線名單 4代表普通消息 Map<String, Object> map1 = Maps.newHashMap(); map1.put('messageType', 4); map1.put('textMessage', textMessage); map1.put('fromuserId', fromuserId); if (touserId.equals('All')) { map1.put('touserId', '所有人'); sendMessageAll(JSON.toJSONString(map1), fromuserId); } else { map1.put('touserId', touserId); System.out.println('開始推送消息給' + touserId); sendMessageTo(JSON.toJSONString(map1), touserId); } } catch (Exception e) { e.printStackTrace(); //logger.info('發生了錯誤了'); } } /** * 給指定的用戶發送消息 * * @param message * @param TouserId * @throws IOException */ public void sendMessageTo(String message, String TouserId) throws IOException { for (WebSocket item : clients.values()) { System.out.println('給指定的在線用戶發送消息,在線人員名單:【' + item.userId.toString() + '】發送消息:' + message); if (item.userId.equals(TouserId)) { item.session.getAsyncRemote().sendText(message); break; } } } /** * 給所有用戶發送消息 * * @param message 數據 * @param FromuserId * @throws IOException */ public void sendMessageAll(String message, String FromuserId) throws IOException { for (WebSocket item : clients.values()) { System.out.println('給所有在線用戶發送給消息,在線人員名單:【' + item.userId.toString() + '】發送消息:' + message); item.session.getAsyncRemote().sendText(message); } } /** * 給所有在線用戶發送消息 * * @param message 數據 * @throws IOException */ public void sendMessageAll(String message) throws IOException { for (WebSocket item : clients.values()) { System.out.println('服務器給所有在線用戶發送消息,當前在線人員為【' + item.userId.toString() + '】發送消息:' + message); item.session.getAsyncRemote().sendText(message); } } /** * 獲取在線用戶數 * * @return */ public static synchronized int getOnlineCount() { return onlineNumber; }}

TestController.java(前端控制器)

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

package com.cyb.socket.websocket;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;import java.io.IOException;@Controller@RequestMapping('testMethod')public class TestController { @Autowired private WebSocket webSocket; /** * 給指定的在線用戶發送消息 * @param userId * @param msg * @return * @throws IOException */ @ResponseBody @GetMapping('/sendTo') public String sendTo(@RequestParam('userId') String userId,@RequestParam('msg') String msg) throws IOException { webSocket.sendMessageTo(msg,userId); return '推送成功'; } /** * 給所有在線用戶發送消息 * @param msg * @return * @throws IOException * @throws IOException */ @ResponseBody @PostMapping('/sendAll') public String sendAll(@RequestBody String msg) throws IOException, IOException { webSocket.sendMessageAll(msg); return '推送成功'; }}

SocketTask.java(輪詢調度往客戶端推送消息)

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

package com.cyb.socket.schedule;import com.cyb.socket.websocket.WebSocket;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;@Componentpublic class SocketTask { @Autowired private WebSocket webSocket; private SimpleDateFormat sdf =new SimpleDateFormat('yyyy-MM-dd HH:mm:ss SSS' ); //5秒輪詢一次 @Scheduled(fixedRate = 5000) public void sendClientData() throws IOException { String msg='{'message':'你好','userId':'002','to':'All'}'; webSocket.sendMessageAll(msg); System.out.println('消息推送時間:'+ sdf.format(new Date())); }}

測試網頁

index.html

<!DOCTYPE HTML><html><head> <title>Test My WebSocket</title></head> <body>TestWebSocket<input type='text' /><button onclick='send()'>SEND MESSAGE</button><button onclick='closeWebSocket()'>CLOSE</button><div id='message'></div></body> <script type='text/javascript'> var websocket = null; //判斷當前瀏覽器是否支持WebSocket if(’WebSocket’ in window){ //連接WebSocket節點 websocket = new WebSocket('ws://localhost:8083/connectWebSocket/001'); } else{ alert(’Not support websocket’) } //連接發生錯誤的回調方法 websocket.onerror = function(){ setMessageInnerHTML('error'); }; //連接成功建立的回調方法 websocket.onopen = function(event){ setMessageInnerHTML('open'); } //接收到消息的回調方法 websocket.onmessage = function(event){ setMessageInnerHTML(event.data); } //連接關閉的回調方法 websocket.onclose = function(){ setMessageInnerHTML('close'); } //監聽窗口關閉事件,當窗口關閉時,主動去關閉websocket連接,防止連接還沒斷開就關閉窗口,server端會拋異常。 window.onbeforeunload = function(){ websocket.close(); } //將消息顯示在網頁上 function setMessageInnerHTML(innerHTML){ document.getElementById(’message’).innerHTML += innerHTML + ’<br/>’; } //關閉連接 function closeWebSocket(){ websocket.close(); } //發送消息 function send(){ var message = document.getElementById(’text’).value; websocket.send(message); }</script></html>

index2.html

<!DOCTYPE HTML><html><head> <title>Test My WebSocket</title></head> <body>TestWebSocket<input type='text' /><button onclick='send()'>SEND MESSAGE</button><button onclick='closeWebSocket()'>CLOSE</button><div id='message'></div></body> <script type='text/javascript'> var websocket = null; //判斷當前瀏覽器是否支持WebSocket if(’WebSocket’ in window){ //連接WebSocket節點 websocket = new WebSocket('ws://localhost:8083/connectWebSocket/002'); } else{ alert(’Not support websocket’) } //連接發生錯誤的回調方法 websocket.onerror = function(){ setMessageInnerHTML('error'); }; //連接成功建立的回調方法 websocket.onopen = function(event){ setMessageInnerHTML('open'); } //接收到消息的回調方法 websocket.onmessage = function(event){ setMessageInnerHTML(event.data); } //連接關閉的回調方法 websocket.onclose = function(){ setMessageInnerHTML('close'); } //監聽窗口關閉事件,當窗口關閉時,主動去關閉websocket連接,防止連接還沒斷開就關閉窗口,server端會拋異常。 window.onbeforeunload = function(){ websocket.close(); } //將消息顯示在網頁上 function setMessageInnerHTML(innerHTML){ document.getElementById(’message’).innerHTML += innerHTML + ’<br/>’; } //關閉連接 function closeWebSocket(){ websocket.close(); } //發送消息 function send(){ var message = document.getElementById(’text’).value; websocket.send(message); }</script></html>

項目地址

鏈接:https://pan.baidu.com/s/1yiAXTkCjHac-F3S1HFyNJQ 提取碼:53tp

功能演示

客戶端給所有在線用戶發消息

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

客戶端給指定在線用戶發送消息

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

服務器給客戶端發送消息(輪詢方式)

注意需要加上這些注解

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

演示

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

通過前端控制器給指定用戶發送消息

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

演示

Java中Spring Boot+Socket實現與html頁面的長連接實例詳解

到此這篇關于Java中Spring Boot+Socket實現與html頁面的長連接實例詳解的文章就介紹到這了,更多相關Java Spring Boot+Socket實現與html頁面的長連接內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 国产精品8888 | 中文字幕久久久久人妻中出 | 国产一区 在线播放 | 中文天堂在线视频 | 91网址在线播放 | 成人午夜激情 | 亚洲性网 | 日韩伦理一区二区 | 欧洲老妇做爰xxxⅹ性视频 | 18视频在线观看男男 | 亚洲深夜在线 | 亚洲色播爱爱爱爱爱爱爱 | 午夜视频免费观看 | 青青草污| 亚洲日韩在线中文字幕综合 | 国产一区自拍视频 | 欧美人妖一区 | 91精品夜夜 | 人妻人人做人做人人爱 | 欧美性猛交xxxx乱 | 成人国产欧美 | 国产精品夜夜 | 福利小视频在线播放 | 人人干人人噪人人摸 | 天堂中文字幕免费一区 | 亚洲天堂第一 | 91精品一区二区中文字幕 | 国产真实夫妇视频 | 精品国产片一区二区三区 | 精品日韩一区二区三区免费视频 | 亚洲国产天堂一区二区三区 | 国产一区二区三区成人久久片老牛 | 在线亚洲网站 | 国产91观看| 成人免费视频网站 | 色88888久久久久久影院 | 午夜精品久久久久久久99老熟妇 | 美女极度色诱图片www视频 | 国产无套粉嫩白浆内谢的出处 | 人与兽黄色毛片 | 久久婷婷综合色丁香五月 | 亚洲调教 | 97久久精品国产一区二区三区 | 影音先锋男人av橹橹色 | 中文字幕一区二区精品 | 日本熟妇色xxxxx欧美老妇 | 日韩国产欧美在线观看 | 四虎视频在线精品免费网址 | 欧美国产日本在线 | 欧美在线性视频 | 日韩特黄| 18禁黄无码免费网站高潮 | 7878成人国产在线观看 | 国产亚洲中字幕欧 | 嫖妓丰满肥熟妇在线精品 | 久久精品97 | 李丽珍a级裸体啪啪 | 日本无遮真人祼交视频 | 手机在线中文字幕 | 无码人妻丰满熟妇区五十路百度 | 国产女人爽到高潮免费视频 | 91插插插插插插插插 | 91精品中文字幕 | 成人免费在线观看av | 亚洲欧美另类综合偷拍 | 波多野结衣丝袜 | 久久久久久久久久免费 | 2018天天弄 | 在线观看免费视频黄 | 久久久久久久久免费视频 | 青青草久久伊人 | 亚洲精品一区二区三天美 | 综合久久av| 国产一级二级三级 | 国内外免费激情视频 | 91在线播放国产 | 中老年妇女性色视频 | 在线精品亚洲一区二区 | 一区精品二区国产 | 黑人巨大精品欧美一区免费视频 | 天干天干啦夜天干天2017 | 亚洲狠狠婷婷久久久四季av | 日韩黄大片 | 天天躁日日躁狠狠躁2018小说 | 手机av免费在线 | 久久精品久久久久久 | 日本一区二区三区免费视频 | 国产香蕉在线视频 | 色偷偷噜噜噜亚洲男人 | 丁香五月网久久综合 | 国产乡下妇女做爰 | 欧美日韩亚洲精品瑜伽裤 | 91久久久久久亚洲精品禁果 | 污动漫网站 | 四虎在线免费观看 | 国产麻豆视频 | 热久久精品免费视频 | 欧洲成人午夜免费大片 | 欧美精品网站在线观看 | 精久国产av一区二区三区孕妇 | 乱码av午夜噜噜噜噜动漫 | 国产一区二三区 | www黄色网址| 亚洲乱码av中文一区二区 | 日韩欧美黄色大片 | 免费在线黄 | 欧美一区1区三区3区公司 | 国产视频麻豆 | 二区在线播放 | 中文字幕 亚洲精品 第1页 | 97超碰国产在线 | 网站在线免费网站在线免费观看国产网页 | 国产无套粉嫩白浆内谢软件 | 黄色网页在线播放 | 好紧好爽再进去一点在线视频 | 手机看片福利一区二区三区 | 日日噜噜夜夜狠狠久久蜜桃 | 日韩精品一区二区在线播放 | 亚洲精品国产乱码久久久1区 | 国产又大又黑又粗免费视频 | 少妇激三级做爰在线观看 | 国产卡一卡二无线乱码 | 无码纯肉视频在线观看 | 亚洲少妇30p | caoporn国产一区二区 | 午夜av福利 | 日韩欧美国产二区 | 久久亚洲精品中文字幕无男同 | 国产免费av片在线 | 成人av在线影视 | 国产无遮挡又黄又爽在线视频 | 国产精品不卡一区 | 日夜夜操 | 亚洲一二三四视频 | 精品国产成人一区二区 | 午夜三级视频 | 邻居少妇与水电工啪啪 | 久久天堂av综合合色蜜桃网 | 亚欧免费无码aⅴ在线观看 麻豆国产一区二区三区四区 | videos性| 久久99久久99精品蜜柚传媒 | 中文字幕一路线二路线三路线 | 国产精品一品二区三区的使用体验 | 日本高清视频www夜色资源 | 免费人成视频x8x8 | 日韩欧美精选 | 日韩免费三级 | 在线欧美国产 | 精品国产一区二区三区四区vr | 久久精品亚洲国产 | 日本亲与子乱人妻hd | 国产精品日本一区二区在线播放 | 国产同性野外打野战 | 国产一级淫片a免费播放 | 思思99热久久精品在线6 | 亚洲成色www久久网站夜月 | 久久入 | 奇米影视奇米色777欧美 | 欧美一区二区三区成人片在线 | 一个人在线观看免费中文www | 亚洲v不卡ww在线 | 军人全身脱精光自慰 | 伊人久久婷婷 | 51真实女性私密spa按摩偷拍 | 精品乱码久久久久久久 | 欧美激情小视频 | 永久免费网站直接看 | 国产精选在线 | 国产美女免费 | 一性一交一口添一摸视频 | 大陆明星乱淫(高h)小说 | 麻豆视频在线免费看 | 亚洲成年人在线观看 | 尤物精品在线观看 | aaaa免费视频 | 在线麻豆av | 夜夜天天拍拍 | 秋霞成人午夜鲁丝一区二区三区 | 国产午夜精品福利视频 | 波多野结衣一区 | 国四虎影永久去哪里了 | 国产精品亚洲一区二区三区在线 | 你懂的在线观看网址 | 国产日产欧产精品浪潮的免费功能 | 日本最新中文字幕 | 好吊色视频988gao在线观看 | 国产91对白在线播放丿 | 亚洲国产精品999久久久婷婷 | 男人影院在线观看 | 密桃成熟时在线观看 | 丰满人妻中伦妇伦精品app | 亚洲图片 欧美 | 黄色亚洲片| 欧美无遮挡很黄裸交视频 | 最近日韩中文字幕 | 邻居少妇张开双腿让我爽一夜图片 | 欧美亚洲综合视频 | 人综合久合合 | 国产精品一区二区三区不卡 | 人与善交xuanwen3d | 天天曰天天爽 | 亚洲第一网站在线观看 | 成人黄色一级视频 | 亚洲精品岛国片在线观看 | 人妖精品videosex性欧美 | 女人被黑人狂躁c到高潮小说 | 性欧美18-19sex性高清播放 | 永久影院| 婷婷国产一区综合久久精品 | 日本国产一区二区三区 | 黄瓜视频在线观看污 | 亚洲欧洲日产国码久在线 | 丁香久久久 | 欧美精品福利视频 | 精品一区二区久久久久久久网站 | 日韩精品无码不卡无码 | 女人与拘做受全过程免费视频 | 免费无码的av片在线观看 | 香蕉久久夜色精品国产使用方法 | 国内毛片毛片 | 国语自产拍精品香蕉在线播放 | 最新免费av | 免费在线看黄视频 | 高潮的毛片激情久久精品 | jvid精品视频hd在线 | aaaaa少妇高潮大片在按摩线 | 乱淫a欧美裸体超级xxxⅹ | 国产麻豆成人传媒免费观看 | jizzjizzjizzjizz亚洲 | 精品免费二区三区三区高中清不卡 | 97免费视频在线 | 六月婷婷网| 秋霞成人午夜鲁丝一区二区三区 | 亚洲国产精品尤物yw在线观看 | 粉嫩av一区二区三区天美传媒 | 老妇肥熟凸凹丰满刺激小说 | 欧美国产日韩在线 | 最新日韩精品 | 欧美日韩中文在线视频 | aa免费视频 | 亚洲日韩精品一区二区三区 | 天天爱天天做天天爽 | 欧美8888| 黄色aaaaa| 欧美第二区 | 巨胸喷奶水www久久久免费动漫 | 久久亚洲激情 | 九九操 | 东京天堂网天堂网 | 久久精品视频1 | 粗暴video蹂躏hd | 黄色成人在线免费观看 | 日日噜噜噜噜人人爽亚洲精品 | 嫩草影院ncyy| 国产亚洲精品久久久久丝瓜 | 免费在线观看中文字幕 | 大j8福利视频导航 | 91亚洲狠狠婷婷综合久久久 | 少妇aa| 国产91精品一区二区绿帽 | 成年午夜视频 | 久久视频这里有久久精品视频11 | 亚洲国产成人久久综合 | 伊人影院在线视频 | 影音先锋中文在线 | 中文字幕一区二区三区中文字幕 | 瑟瑟网站在线观看 | 97视频久久久 | 日韩欧美中文字幕一区 | 牛牛超碰 | 国精品无码一区二区三区在线蜜臀 | av在线播放网 | 亚洲国产成人爱av在线播放 | 国产成人性色生活片 | www.日韩精品 | 黄色视屏网站 | 色阁av| 劲爆欧美第一页 | 日日噜噜夜夜狠狠久久丁香五月 | 一级片在线免费 | www色多多| 国产中文区二暮区2022 | 中文字幕xxx | 亚洲色成人网站www永久四虎 | 日韩精品一区二区三区中文 | 99色精品| 国产色片在线观看 | 97看片网| 日韩精品视频免费看 | 亚洲∧v久久久无码精品 | 精品xxxx户外露出视频 | 神马午夜av| 性开放肉日记高hnp 性开放少妇xxx视频 | 欧美又大又硬又粗bbbbb | 中文字幕av影视 | 欧美精品一区二区三区视频 | 第一章婶婶的性事 | 国产麻传媒精品国产av | 大香伊人 | 久久久久亚洲精品国产 | 免费毛片网站 | 久久久久国产一区二区三区小说 | 欧美图片一区二区 | 日日射夜夜 | 亚洲欧美一二三区 | 波多野结衣一区二区三区高清 | 日韩在线一区二区三区四区 | 思思久久99热久久精品66 | 新婚若妻侵犯中文字幕 | 色大师在线观看免费播放 | 欧美在线视频你懂的 | 国产高清一区二区三区视频 | 午夜精品一区二区三区在线播放 | 好大好硬好爽免费视频 | 成年免费a级毛片 | 波多野结衣91 | 国产成人精品久久久 | 999偷拍精品视频 | 加勒比一区二区 | 国产成人精品一区二区三区视频 | 任你躁在线精品免费 | 国语对白xxxx乱大交 | 美女丝袜合集 | 日本不卡在线视频 | 在线精品亚洲欧美日韩国产 | 久久久69| 国产乱人内谢69xxxx亚洲 | 琪琪色视频 | 51视频国产精品一区二区 | 日韩欧美一区二区三区黑寡妇 | 在线精品视频免费观看 | 日韩精品免费在线视频 | 色肉色伦交国产69精品 | 国产午夜不卡片免费视频 | 久久伊人操 | 色啪综合 | 中文字幕一区二区三区四区久久 | 亚洲男人天堂 | 国产莉萝无码av在线播放 | 野外吮她的花蒂高h在线观看 | 麻豆精品乱码一二三区别蜜臀在线 | 动漫av一区二区在线观看 | 巨乳女教师佐山爱,夫前在线 | 99re在线视频精品 | 久久久精品久久久久久 | 精品国产第一国产综合精品 | 成年人黄色大片 | 国产寡妇亲子伦一区二区三区四区 | 国产精品香蕉在线观看 | 最近更新中文字幕 | 精品人无码一区二区三区 | 99久久国产综合精品女不卡 | www.av日韩| av视| 爱情岛亚洲论坛入口 | www天堂avcom | 欧美一级看片 | 理论片福利片 | 国产一区二区三区四区五区六区 | 亚洲精品国产精品国自产网站按摩 | 亚洲国产视频在线观看 | 国内精品在线播放 | 中文字幕人妻伦伦 | 一区视频在线播放 | 日韩乱码一区二区 | 欧美理论视频 | a级片久久久 | 欧美日本国产欧美日本韩国99 | 野外做受又硬又粗又大视频 | 亚洲精华国产精华精华液网站 | 在线天堂中文www官网 | 久久久久久久久久久久91 | 亚洲精品一区国产精品 | 日本高清www免费视频 | 国产伦子真实事例对白 | 一区二区高清 | 奇米色欧美一区二区三区 | 欧美在线播放一区 | 奇米影视第四狠狠777 | 免费看黄色小视频 | 国产做a爰片久久毛片a片美国 | 欧美日韩综合在线观看 | 亚洲日本va午夜蜜芽在线电影 | 中日av乱码一区二区三区乱码 | 自拍偷拍1 | 欧美极品一区二区三区 | 欧美偷拍第一页 | 成人毛片av | 中国china体内裑精亚洲日本 | 国产女主播在线喷水呻吟 | 中日韩精品视频在线观看 | 手机看片福利一区二区三区 | 成人一级黄色片 | 91网站永久免费看 | 午夜福利电影 | 国产一级做a爰片久久毛片男 | 天天爽天天噜在线播放 | 男女黄色又爽大片 | 性色m3u8视频在线观看 | 久久影院综合精品 | 精品国产91久久久久久久妲己 | 粉嫩老牛aⅴ一区二区三区 粉嫩欧美一区二区三区 | www国产| 久久午夜鲁丝 | 天天艹天天 | 亚洲性生活视频 | 国产极品在线播放 | 在线观看中文字幕视频 | 九九九伊在人现综合 | 精品久久久久久久 | 借种(出轨高h) | 久久精品免费一区二区三区 | 99久re热视频这里只有精品6 | 欧美有码在线观看 | 狠狠操一区二区 | 男男车车的车车网站w98免费 | 三级国产三级在线 | www.天天干.com | 久久香蕉热 | 免费一级日韩欧美性大片 | 免费人成自慰网站 | 新版天堂资源中文8在线 | 黄色av网站免费在线观看 | 天堂在线中文资源 | 中文字幕在线日韩 | 久久精品呦女 | 欧美1级片 | 57pao国产成永久免费视频 | 妹子色综合 | 亚洲码欧美码一区二区三区 | 国产精品久久久久久久久人妻 | 日韩一区二区三区无码影院 | 亚洲特黄 | 午夜影院免费体验区 | 国产亚洲一区二区在线观看 | 伊人成综合 | 亚洲国产一二三精品无码 | 北条麻妃一区二区三区在线 | 中文字幕亚洲欧美日韩在线不卡 | 色综合久久久 | 国产精品免费视频网站 | 7色av| 男女边吃奶边摸边做边爱视频 | 日韩精品一区二区三区中文在线 | 粉嫩一区二区三区四区公司1 | 久久精品99国产精品亚洲 | 久久久午夜精品福利内容 | 熟女视频一区二区在线观看 | 日韩特黄特色大片免费视频 | 亚州av在线播放 | 日韩高清一区 | 福利在线免费视频 | 绿帽在线观看99av | 熟妇五十路六十路息与子 | 亚洲成人av一区二区 | 你懂的在线观看网址 | 日本一级淫片 | 少妇二级淫片免费放 | 裸体美女无遮挡免费网站 | 国产欧美一区二区精品秋霞影院 | 中国女人高潮hd | 中文永久免费观看 | 肉丝一区二区 | 欧美精品乱人伦久久久久久 | 亚洲精品午夜久久久久久久 | 无码成人1000部免费视频 | 国产一区二区日本欧美精品久久久 | 欧美成人高清在线播放 | 91蝌蚪视频在线观看 | 国产成人免费9x9x人网站视频 | 色狠狠av老熟女 | 国产免费黄色小视频 | 99国产超薄肉色丝袜交足的后果 | 窝窝视频在线 | 久久久久久久久久久久91 | 日韩在线一二 | 国产精品又黄又爽又色无遮挡 | 欧美xxxx免费虐 | 久久99热狠狠色精品一区 | 中文字幕一区二区三区四区 | 久久久久久一 | 亚洲人成人网站在线观看 | 亚洲va中文字幕 | 国产3p又大又爽又粗又硬免费 | 九九热在线免费观看 | 国精产品一区一区三区视频 | 91超碰免费在线 | 伊人精品成人久久综合软件 | 国产乱码一区二区三区咪爱 | 日日躁夜夜躁白天躁晚上 | 少妇被躁爽到高潮 | 欧美mv日韩mv国产 | 狼性av| 激情综合色综合久久综合 | av九九九 | 国产一级特黄 | 国内精品视频在线观看 | 性色av一区二区咪爱 | 久久岛国搬运工 | 99啦porny丨首页入口 | 日韩专区欧美专区 | 成人羞羞国产 | 50路60路老熟妇啪啪 | 二区影院| 91精品系列| 亚洲精品中文字幕久久久久下载 | 五月婷婷丁香久久 | 国产精品免费久久久久 | 99热这里有精品 | 色 综合 欧美 亚洲 国产 | 亚洲精品视频在线免费 | 九色丨porny丨喷水 | 朝鲜女人大白屁股ass孕交 | 91影院在线播放 | 美女100%露胸无遮挡 | 性猛交ⅹxxx乱大交大片 | 色呦呦免费视频 | 欧美一区久久久 | 亚洲国产制服丝袜先锋 | 国产做无码视频在线观看浪潮 | 嫩草精品福利视频在线观看 | 久久av网站| 北条麻妃久久精品 | 黄频网站在线观看 | 国产在线www| 日韩三级在线 | 7777kkk亚洲综合欧美网站 | 国产不卡一区二区视频 | 亚洲黄色视屏 | 青草视频在线播放 | 99久久99久久精品国产片果冻 | 成人在线免费小视频 | 东北女人啪啪对白 | 亚洲jizzjizz日本少妇 | 久久露脸国产精品 | 中文字幕一区二区三区精华液 | 日韩欧美超碰 | 天天操天天弄 | 边啃奶头边躁狠狠躁 | 亚洲精选一区二区 | 乡下小少妇xxxxx性开教 | 男人爱看的网站 | 亚欧洲精品在线 | 漂亮人妻被黑人久久精品 | www婷婷av久久久影片 | 看免费黄色一级片 | 欧美黄色三级视频 | 欧美卡一卡二卡三 | 在线免费看污网站 | 亚洲成人在线免费观看 | 亚洲第一天堂无码专区 | 黄视频在线免费看 | 经典三级第一页 | 日韩成av人片在线观看 | 五月婷婷狠狠干 | 欧美一区二区三区爱爱 | 单亲与子性伦刺激对白视频 | 亚洲v无码一区二区三区四区观看 | 99久久99久久精品 | 性欧美巨大乳 | 国产精品一区二av18款 | 国产三区在线视频 | 色亚洲色图 | 一本之道高清狼码 | 欧美日韩综合在线观看 | www天天干com | 777片理伦片在线观看 | 精品一卡2卡三卡4卡免费网站 | 精品国产免费久久久久久桃子图片 | 欧美日韩精品一区二区三区在线 | 一本一道波多野结衣av中文 | 性国产xxxx乳高跟 | 青青草精品视频 | 91l九色lporny| 视频在线亚洲 | 免费热情视频 | 欧美又大又黄又粗高潮免费 | 男人猛吃奶女人爽视频 | 东京久久久 | 成人欧美一区二区三区黑人冫 | 青娱乐欧美 | 久久人人看 | www.日韩视频 | 精品国产91久久久久久浪潮蜜月 | 三级不卡视频 | 337p日本欧洲亚洲大胆裸体艺术 | 亚洲欧美日韩精品suv | 国产欧美精品一区二区三区四区 | 色臀av| 精品免费国产一区二区 | 777米奇影视第四色 韩产日产国产欧产 | 国产精品 欧美激情 | 高潮毛片无遮挡高清视频播放 | 精品国产乱码久久久久久久 | 久久99在线| 亚洲国产中文字幕在线 | 欧美精品在线视频 | 成人爱爱免费视频 | 天天色影网| 激情综合影院 | 妖精色av无码国产在线看 | 合欢视频污 | 91日韩中文字幕 | 无套内内射视频网站 | 成人自拍视频在线 | 美女内射毛片在线看免费人动物 | 青青偷拍视频 | 91成熟丰满女人少妇 | 亚洲线精品一区二区三区八戒 | 欧美一级乱黄 | 黄色福利在线观看 | 午夜精品久久久久久久爽 | 无码人妻久久久一区二区三区 | 天堂av在线免费观看 | 青草99 |