日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring webscoket服务端使用记录

發布時間:2023/12/13 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring webscoket服务端使用记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

記錄spring4中websocket的使用方式

pom jar包配置

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-messaging</artifactId> <version>${spring.version}</version> </dependency>

其中spring.version的配置是:

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring.version>4.0.0.RELEASE</spring.version><java.version>1.8</java.version><druid.version>1.1.6</druid.version></properties>

涉及到json消息的支持jar用的是alibaba提供的:

<!-- json --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.28</version> </dependency>

配置websocket服務

在spring webscoket中有兩種方式配置webscoket服務,一種是xml中配置,一種是使用代碼繼承WebSocketConfigurer,這里使用第二種:

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.socket.WebSocketHandler; import org.springframework.web.socket.config.annotation.EnableWebSocket; import org.springframework.web.socket.config.annotation.WebSocketConfigurer; import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;/*** spring websocket配置* @author ThatWay* 2018-5-8*/ @Configuration @EnableWebMvc @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer {@Overridepublic void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {//注冊webscoket處理類、webscocket的訪問地址、過濾處理類registry.addHandler(webSocketHandler(), "/ws").addInterceptors(webSocketInterceptor());}/*** websocket請求處理* @return*/@Beanpublic WebSocketHandler webSocketHandler() {return new WebScoketHandler();}/*** websocket攔截器* @return*/@Beanpublic WebSocketInterceptor webSocketInterceptor(){return new WebSocketInterceptor();}}

webscoket請求過濾

在上一步的服務配置中,使用的webSocketInterceptor是實現了HandshakeInterceptor接口的過濾處理類,它將攔截所有到達服務端的websocket請求,可websocket消息處理前和處理后插入動作。
這里面主要做的事是,客戶端創建連接時傳遞的參數可以取出來,放入到創建連接后產生的session中,在服務端下發消息時可以通過參數來區分session,下面代碼中作為session標識的是pageFlag參數。客戶端請求的地址是這樣的:ws://localhost:8080/integrate_pipe/ws?pageFlag=p1&actionFlag=simple

import javax.servlet.http.HttpServletRequest;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpResponse; import org.springframework.http.server.ServletServerHttpRequest; import org.springframework.util.StringUtils; import org.springframework.web.socket.WebSocketHandler; import org.springframework.web.socket.server.HandshakeInterceptor;/*** websocket請求過濾器* @author ThatWay* 2018-5-8*/ public class WebSocketInterceptor implements HandshakeInterceptor {private static Logger logger = LoggerFactory.getLogger(WebSocketInterceptor.class); @Overridepublic void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Exception exception) {logger.info("webscoket處理后過濾回調觸發");}@Overridepublic boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {logger.info("webscoket處理前過濾回調觸發");boolean flag = true;//在調用handler前處理方法if (request instanceof ServletServerHttpRequest) {ServletServerHttpRequest serverHttpRequest = (ServletServerHttpRequest) request; HttpServletRequest req = serverHttpRequest.getServletRequest();// 從請求中獲取頁面標志String pageFlag = req.getParameter("pageFlag");// 獲取初始化需要的數據String actionFlag = req.getParameter("actionFlag");if(StringUtils.isEmpty(pageFlag) || StringUtils.isEmpty(actionFlag) ){flag = false;logger.info("webscoket連接請求,頁面標志pageFlag:"+pageFlag+",動作標志:"+actionFlag+",參數不正確,請求拒絕");} else {logger.info("webscoket連接請求,頁面標志pageFlag:"+pageFlag+",動作標志:"+actionFlag);// 將頁面標識放入參數中,之后的session將根據這個值來區分attributes.put("pageFlag", pageFlag.trim());attributes.put("actionFlag", actionFlag.trim());}} else {flag = false;}return flag;} }

消息處理

在服務配置中,使用的WebSocketHandler是繼承了TextWebSocketHandler的消息處理類,將由這個類來處理消息,spring中將webscoket相關的生命周期回調也封裝到了這里。另外,通過@Service將此類注解為服務,在其他業務controller中就可以使用此類方法觸發消息下發了。

import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import org.springframework.web.socket.CloseStatus; import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketHandler; import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.handler.TextWebSocketHandler;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject;import cn.qingk.entity.User;/*** 消息處理類* @author ThatWay* 2018-5-5*/ @Service public class WebScoketHandler extends TextWebSocketHandler {private static Logger logger = LoggerFactory.getLogger(WebSocketHandler.class); // 頁面標識名稱private final String CLIENT_ID = "pageFlag";// 初始化動作標識名稱private final String ACTION_INIT = "actionFlag";// 頁面集合private static Map<String, WebSocketSession> clients = new ConcurrentHashMap<String, WebSocketSession>(); // 靜態變量,用來記錄當前在線連接數private static final AtomicInteger connectCount = new AtomicInteger(0);/***********/*** 連接建立成功后的回調*/@Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { logger.info("wescoket成功建立連接"); // 頁面標識String pageFlag = getAttributeFlag(session,this.CLIENT_ID);// 初始化動作標識String reqAction = getAttributeFlag(session,this.ACTION_INIT);// 返回結果int code = WebSocketStatus.CODE_FAIL;String msg = WebSocketStatus.MSG_FAIL;String returnJson = "";if (!StringUtils.isEmpty(pageFlag)) {// 連接數加一,為了保證多個同頁面標識的請求能被處理addOnlineCount();int onlineCount = getOnlineCount();String key = pageFlag+"_"+onlineCount;//管理已連接的sessionclients.put(key, session);logger.info("在線屏數:"+onlineCount);// 從數據庫里查詢需要信息返回code = WebSocketStatus.CODE_SUCCESS;msg = WebSocketStatus.MSG_SUCCESS;// 查詢數據庫得到typeString type = WebSocketStatus.TYPE_BDXW;if (reqAction.toLowerCase().equals(WebSocketStatus.ACTION_SIMPLE)) {// DB基本數據logger.info("數據庫查詢【"+pageFlag+"】的基本數據");Map<String, Object> infoMap = new HashMap<String, Object>();infoMap.put("type", "qwzx");infoMap.put("title", "全網資訊");returnJson = this.makeInfoResponseJson(code, type,reqAction, msg, infoMap);} else if (reqAction.toLowerCase().equals(WebSocketStatus.ACTION_DETAIL)) {// DB數據列表logger.info("數據庫查詢【"+pageFlag+"】的列表數據");int totalCount = 1;List<Object> userList = new ArrayList<Object>();User user1 = new User();user1.setAddress("address 1");user1.setAge(18);user1.setId(1);user1.setName("name 1");userList.add(user1);returnJson = this.makeListResponseJson(code, type,reqAction, msg, totalCount,userList);} else {code = WebSocketStatus.CODE_FAIL;msg = WebSocketStatus.MSG_FAIL;logger.error("客戶端請求的action為:"+reqAction);}// 返回信息TextMessage returnMessage = new TextMessage(returnJson); session.sendMessage(returnMessage); } else {session.sendMessage(new TextMessage("無頁面標識,連接關閉!")); session.close();}} /*** 接收消息處理* 客戶端發送消息需遵循的格式:{"pageFlag": "p1","actionFlag": "simple/detail"}*/@Override public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { long start = System.currentTimeMillis();// 返回結果int code = WebSocketStatus.CODE_FAIL;String msg = WebSocketStatus.MSG_FAIL;String returnJson = "";//接收終端發過來的消息String reqMsg = message.getPayload();// 根據頁面標識進行邏輯處理,提取需要的數據if (!StringUtils.isEmpty(msg)) {JSONObject terminalMsg = JSONObject.parseObject(reqMsg);if (!terminalMsg.isEmpty()) {if (terminalMsg.containsKey("pageFlag") && terminalMsg.containsKey("actionFlag")) {//pageFlagString reqPageFlag = terminalMsg.getString("pageFlag");String reqAction = terminalMsg.getString("actionFlag");// 從數據庫里查詢需要信息返回code = WebSocketStatus.CODE_SUCCESS;msg = WebSocketStatus.MSG_SUCCESS;// 查詢數據庫得到typeString type = WebSocketStatus.TYPE_BDXW;if (reqAction.toLowerCase().equals(WebSocketStatus.ACTION_SIMPLE)) {// DB基本數據logger.info("數據庫查詢【"+reqPageFlag+"】的基本數據");Map<String, Object> infoMap = new HashMap<String, Object>();infoMap.put("type", "qwzx");infoMap.put("title", "全網資訊");returnJson = this.makeInfoResponseJson(code, type,reqAction, msg, infoMap);} else if (reqAction.toLowerCase().equals(WebSocketStatus.ACTION_DETAIL)) {// DB數據列表logger.info("數據庫查詢【"+reqPageFlag+"】的列表數據");int totalCount = 1;List<Object> userList = new ArrayList<Object>();User user1 = new User();user1.setAddress("address 1");user1.setAge(18);user1.setId(1);user1.setName("name 1");userList.add(user1);returnJson = this.makeListResponseJson(code, type,reqAction, msg, totalCount,userList);} else {code = WebSocketStatus.CODE_FAIL;msg = WebSocketStatus.MSG_FAIL;logger.error("客戶端請求的action為:"+reqAction);}}} else {logger.error("客戶端請求的消息轉換json為空");}} else {logger.error("客戶端請求的消息為空");}// 返回信息TextMessage returnMessage = new TextMessage(returnJson); long pass = System.currentTimeMillis() - start;logger.info("接收終端請求返回:" + returnMessage.toString()+",耗時:"+pass+"ms");// 向終端發送信息session.sendMessage(returnMessage); } /*** 出現異常時的回調*/@Override public void handleTransportError(WebSocketSession session, Throwable thrwbl) throws Exception { if(session.isOpen()){ session.close(); } logger.info("websocket 連接出現異常準備關閉");} /*** 連接關閉后的回調*/@Override public void afterConnectionClosed(WebSocketSession session, CloseStatus cs) throws Exception { // 連接數減1for (Entry<String, WebSocketSession> entry : clients.entrySet()) {String clientKey = entry.getKey();WebSocketSession closeSession = entry.getValue();if(closeSession == session){logger.info("移除clientKey:"+clientKey);clients.remove(clientKey);decOnlineCount();int leftOnlineCount = getOnlineCount();logger.info("剩余在線屏數:"+leftOnlineCount);}}logger.info("websocket 連接關閉了"); } @Override public boolean supportsPartialMessages() { return false; } /*** 發送信息給指定頁面* @param clientId* @param message* @return*/public boolean sendMessageToPage(String pageFlag, TextMessage message) {boolean flag = false;int all_counter = 0;int send_counter = 0;long start = System.currentTimeMillis();if(!StringUtils.isEmpty(pageFlag)){for (Entry<String, WebSocketSession> entry : clients.entrySet()) {String clientKey = entry.getKey();// 給所有以此id標識開頭的終端發送消息if(clientKey.startsWith(pageFlag)){all_counter++;WebSocketSession session = entry.getValue();if (!session.isOpen()) {flag = false;} else {try {session.sendMessage(message);send_counter++;flag = true;logger.info("sendMessageToPage:[clientKey:"+clientKey+"],flag:"+flag);} catch (IOException e) {e.printStackTrace();flag = false;}}}}}long pass = System.currentTimeMillis() - start;logger.info("sendMessageToPage:"+pageFlag+",flag:"+flag+",all_counter:"+all_counter+",send_counter:"+send_counter+",pass:"+pass+"ms"); return flag;}/*** 發送信息給所有頁面* @param clientId* @param message* @return*/public boolean sendMessageToAll(TextMessage message) {boolean flag = false;int all_counter = 0;int send_counter = 0;long start = System.currentTimeMillis();for (Entry<String, WebSocketSession> entry : clients.entrySet()) { all_counter++;String clientKey = entry.getKey();WebSocketSession session = entry.getValue();if (!session.isOpen()) {flag = false;} else {try {session.sendMessage(message);flag = true;send_counter++;logger.info("sendMessageToAll:[clientKey:"+clientKey+"],flag:"+flag);} catch (IOException e) {e.printStackTrace();flag = false;}} } long pass = System.currentTimeMillis() - start;logger.info("sendMessageToAll,flag:"+flag+",all_counter:"+all_counter+",send_counter:"+send_counter+",pass:"+pass+"ms"); return flag;}/*** 給指定的精準發送消息* @param message* @param toUser* @throws IOException*/public boolean sendMessageToId(String clientId,TextMessage message) throws IOException { boolean flag = false;int all_counter = 0;int send_counter = 0;long start = System.currentTimeMillis();if(!StringUtils.isEmpty(clientId)){all_counter++;WebSocketSession session = clients.get(clientId);if (!session.isOpen()) {flag = false;} else {try {session.sendMessage(message);flag = true;send_counter++;} catch (IOException e) {e.printStackTrace();flag = false;}} }long pass = System.currentTimeMillis() - start;logger.info("sendMessageToId:"+clientId+",flag:"+flag+",all_counter:"+all_counter+",send_counter:"+send_counter+",pass:"+pass+"ms");return flag;} /*** 獲取參數標識* @param session* @return*/private String getAttributeFlag(WebSocketSession session,String flagName) {String flag = null;try {flag = (String) session.getHandshakeAttributes().get(flagName);} catch (Exception e) {logger.error(e.getMessage());}return flag;}/*** 當前連接數* @return*/private synchronized int getOnlineCount() { return connectCount.get(); } /*** 新增連接數*/private synchronized void addOnlineCount() { connectCount.getAndIncrement();} /*** 減連接數*/private synchronized void decOnlineCount() { connectCount.getAndDecrement();} /*** 生成列表響應json* @param code 狀態碼* @param type 數據類型* @param action 操作類選* @param msg 提示信息* @param totalCount 總數量* @param dataList 數據列表* @return json*/public synchronized String makeListResponseJson(int code,String type,String action,String msg,int totalCount,List<Object> dataList){JSONObject jsonObj = new JSONObject();jsonObj.put("code", code);jsonObj.put("type", type);jsonObj.put("action", action);jsonObj.put("msg", msg);JSONObject contentObj = new JSONObject();contentObj.put("totalCount", totalCount);JSONArray listArray = new JSONArray(dataList);contentObj.put("list", listArray);jsonObj.put("body", contentObj);logger.info("生成list json:" + jsonObj.toString());return jsonObj.toString();}/*** 生成詳情響應json* @param code 狀態* @param type 數據類型* @param action 操作類型* @param msg 提示消息* @param info 數據詳情* @return json*/public synchronized String makeInfoResponseJson(int code,String type,String action,String msg,Object info){JSONObject jsonObj = new JSONObject();jsonObj.put("code", code);jsonObj.put("type", type);jsonObj.put("action", action);jsonObj.put("msg", msg);jsonObj.put("body", info);logger.info("生成info json:" + jsonObj.toString());return jsonObj.toString();}}

狀態輔助類

在消息處理類中用到了一些狀態碼、下發消息等靜態變量主要是為了和客戶端交互時定義好消息格式的。這個類不一定需要。

public class WebSocketStatus {/*********************狀態碼 開始**********************///需要根據業務具體情況擴展狀態碼// 處理成功public static final int CODE_SUCCESS = 200;// 處理失敗public static final int CODE_FAIL = 200;/*********************狀態碼 結束**********************//*********************信息 開始**********************///需要根據業務具體情況擴展信息// 處理成功public static final String MSG_SUCCESS = "OK";// 處理失敗public static final String MSG_FAIL = "FAIL";/*********************信息 結束**********************//*********************數據類型 開始**********************/// 全網熱點public static final String TYPE_QWRD = "qwrd";// 本地新聞public static final String TYPE_BDXW = "bdxw";// 網絡熱搜public static final String TYPE_WLRS = "wlrs";// 地方輿論public static final String TYPE_DFYL = "dfyl";// 新聞選題public static final String TYPE_XWXT = "xwxt";// 外采調度public static final String TYPE_WCDD = "wcdd";// 生產力統計public static final String TYPE_SCLTJ = "scltj";// 影響力統計public static final String TYPE_YXLTJ = "yxltj";// 任務統計public static final String TYPE_RWTJ = "rwtj";// 資訊熱榜public static final String TYPE_ZXRB = "zxrb";// 視頻熱榜public static final String TYPE_SPRB = "sprb";// 列表自定義public static final String TYPE_LBZDY = "lbzdy";// 圖表自定義public static final String TYPE_TBZDY = "tbzdy";/*********************數據類型 結束**********************//*********************動作類型 開始**********************/// 基本信息public static final String ACTION_SIMPLE = "simple";// 詳情信息public static final String ACTION_DETAIL = "detail";/*********************動作類型 開始**********************/}

控制器中調用

這里主要是模擬了控制器中由于某個動作需要觸發給指定的session發送消息。

@Controller @RequestMapping("/testController") public class TestController {public static final Logger LOGGER = Logger.getLogger(TestController.class);@Autowiredprivate TestService testService;@Autowiredprivate WebScoketHandler handler;@RequestMapping("/test")public void test(HttpServletRequest request, HttpServletResponse response) {try {Map<String, Object> infoMap = new HashMap<String, Object>();infoMap.put("type", "qwzx");infoMap.put("title", "全網資訊");TextMessage infoMessage = new TextMessage(handler.makeInfoResponseJson(WebSocketStatus.CODE_SUCCESS, WebSocketStatus.TYPE_QWRD,WebSocketStatus.ACTION_SIMPLE, WebSocketStatus.MSG_SUCCESS, infoMap));int totalCount = 3;User user1 = new User();user1.setAddress("address 1");user1.setAge(18);user1.setId(1);user1.setName("name 1");User user2 = new User();user2.setAddress("address 2");user2.setAge(18);user2.setId(1);user2.setName("name 2");User user3 = new User();user3.setAddress("address 3");user3.setAge(18);user3.setId(1);user3.setName("name 3");List<Object> userList = new ArrayList<Object>();userList.add(user1);userList.add(user2);userList.add(user3);TextMessage listMessage = new TextMessage(handler.makeListResponseJson(WebSocketStatus.CODE_SUCCESS, WebSocketStatus.TYPE_QWRD,WebSocketStatus.ACTION_DETAIL, WebSocketStatus.MSG_SUCCESS, totalCount,userList));String pageFlag = "p1";//向所有打開P1的瀏覽器發送消息boolean sendFlag1 = this.handler.sendMessageToPage(pageFlag, infoMessage);System.out.println("sendFlag1:"+sendFlag1);response.getWriter().print(sendFlag1);boolean sendFlag2 = this.handler.sendMessageToPage(pageFlag, listMessage);System.out.println("sendFlag1:"+sendFlag2);response.getWriter().print(sendFlag2);} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}} }

總結

以上是生活随笔為你收集整理的spring webscoket服务端使用记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

成人av在线直播 | 亚洲精品99久久久久中文字幕 | 麻豆精品视频在线 | 久久这里有 | 国产精品一区免费在线观看 | 视频一区二区在线观看 | 精品久久久久久久久久久久久 | 久久免费试看 | 国产91精品看黄网站在线观看动漫 | 久草视频精品 | 99这里有精品 | 欧美精品久久久久久久久久丰满 | 久日视频 | 成人羞羞视频在线观看免费 | 中文字幕高清视频 | 久久精品二区 | 一区二区三区四区久久 | 狠狠躁日日躁狂躁夜夜躁 | 亚洲免费av一区二区 | 一区二区三区高清 | 97碰碰精品嫩模在线播放 | 免费成人av在线看 | 麻豆94tv免费版 | 国内精品亚洲 | 四虎成人精品永久免费av九九 | 日韩av一区二区在线影视 | 亚洲国产网站 | a级片在线播放 | 丝袜美腿亚洲 | 麻花豆传媒一二三产区 | 麻豆成人在线观看 | av不卡免费看 | 人人人爽| 97**国产露脸精品国产 | 伊人伊成久久人综合网小说 | 日韩欧美精品一区二区三区经典 | 成人av亚洲 | av电影久久| 亚洲视频免费在线观看 | 日韩av免费一区 | 国产精品6| 婷婷丁香导航 | av丁香花| 夜夜夜夜猛噜噜噜噜噜初音未来 | 中文字幕一区2区3区 | 午夜视频在线观看一区二区三区 | 精品999在线观看 | 国产精品久久久久久久久久久久 | 免费观看全黄做爰大片国产 | 成人丁香花 | 人人爱在线视频 | 手机看片1042 | 午夜资源站 | 中文字幕有码在线观看 | 成人va天堂| 91高清一区| se视频网址 | 日韩av免费一区二区 | 伊人成人精品 | 视频在线99re| 亚洲免费在线看 | 欧美日韩免费视频 | 久久男人中文字幕资源站 | 中文免费在线观看 | 亚洲欧美成人综合 | 亚洲国产免费 | 毛片区| 亚洲高清91 | 黄色在线视频网址 | 2019中文字幕网站 | 国产精品久久久久久久久久久免费 | 久久免费黄色网址 | 缴情综合网五月天 | 伊人手机在线 | 日韩理论在线观看 | 国内精品久久久久影院一蜜桃 | 2019天天干天天色 | 日韩大片免费在线观看 | 色综合久久久久久中文网 | 国产精品久久久久久久久久免费 | 91手机视频 | 久久久综合九色合综国产精品 | 怡红院av久久久久久久 | 美女网站色在线观看 | 亚洲国产精品传媒在线观看 | 欧美久久久久久久久久 | 日韩视频在线观看免费 | 天天爽网站 | 亚洲乱码久久 | 亚洲黄色在线免费观看 | 狠狠色丁香婷婷综合 | 一区二区三区四区五区六区 | 国产 在线 高清 精品 | 精品国产综合区久久久久久 | 亚洲精品日韩在线观看 | 成人黄色大片在线免费观看 | 免费成人av网站 | 99色国产 | 久香蕉| 国产精品久久久久久久久久久久午 | 99免在线观看免费视频高清 | 国产探花视频在线播放 | 亚洲国产精品久久久久 | 中文字幕中文中文字幕 | 黄色的视频 | 久久亚洲福利 | 麻花豆传媒mv在线观看网站 | av免费在线播放 | 免费看一级黄色 | 欧美在线观看视频一区二区 | 久久国产精品免费看 | 国产视频精品网 | 五月婷婷操 | 嫩草av在线| 日本免费一二三区 | 亚洲国产午夜精品 | 色综合久久久久久久 | 久精品视频在线观看 | 毛片二区 | 美女网站在线免费观看 | 成人app在线免费观看 | 欧美性视频网站 | 91毛片在线 | 日韩精品你懂的 | 久久久久北条麻妃免费看 | 手机av在线不卡 | 国产高清第一页 | 美腿丝袜av | 日韩精品免费一区二区在线观看 | 日日摸日日添日日躁av | 日韩av在线网站 | 午夜精品久久久久久久久久久久 | 91福利社区在线观看 | 五月天天色 | 国产手机在线精品 | 精品电影一区二区 | www.成人精品| 日韩一区二区三区免费视频 | 91热爆在线观看 | 91av在线免费观看 | 一区二区三区在线观看中文字幕 | 亚洲精品国产精品乱码在线观看 | 久久精品视频中文字幕 | 九九免费视频 | 国产91成人在在线播放 | 精品一区二区免费视频 | www.夜夜| 国产一线二线三线性视频 | 四虎永久免费 | 亚洲一级黄色av | 国产精品美女久久久网av | 九九爱免费视频 | 91麻豆免费视频 | 中文字幕中文字幕在线一区 | 夜夜摸夜夜爽 | 亚洲精品视频在线观看免费视频 | 国产精品一区欧美 | 国产精品美女免费 | 久久国产精品偷 | 久久国产精品视频观看 | 色99之美女主播在线视频 | 一区二区三区日韩在线观看 | 亚洲视频免费视频 | 亚洲精选国产 | 狠狠色免费 | 91亚·色| 狠狠88综合久久久久综合网 | 久久新| 亚洲专区免费观看 | 特级毛片爽www免费版 | 亚洲精品乱码久久久久久蜜桃动漫 | 国产一区二区在线免费播放 | 欧美伊人网 | 午夜精品视频福利 | 久久久久国产成人精品亚洲午夜 | 精品视频999 | 在线观看av大片 | 欧美黑吊大战白妞欧美 | 91中文字幕在线播放 | 五月婷婷激情 | 久久久久久久久久影院 | 国产91在线观看 | 日日夜夜91 | 最新高清无码专区 | www.xxxx欧美| 日韩中出在线 | 久久久影院一区二区三区 | 99婷婷 | 狠狠色狠狠色合久久伊人 | 美女视频黄是免费的 | 人人澡超碰碰 | 久久看片网站 | 黄色大片av | a级国产乱理伦片在线观看 亚洲3级 | 日韩在线观看网址 | 国产成人一区二区啪在线观看 | 亚洲电影av在线 | 中文字幕丝袜美腿 | 久久久久久久久久久影院 | 婷婷激情综合五月天 | 成人在线视频一区 | av资源中文字幕 | 99这里只有久久精品视频 | 人人精久 | 中文在线天堂资源 | 五月色丁香 | 中文字幕在线不卡国产视频 | 伊人干综合 | 日韩精品一区二区在线 | www亚洲一区| 美女网站在线看 | 久久免费观看视频 | 一区二区视频电影在线观看 | 中文字幕一区二区在线播放 | 色在线网站 | 亚洲精品中文在线资源 | 五月婷婷六月综合 | 一区二区三区韩国免费中文网站 | 午夜精品久久久99热福利 | 国产免费视频在线 | 蜜臀久久99精品久久久久久网站 | 欧美a级在线免费观看 | 国产在线视频一区二区三区 | 午夜精品久久久久久 | 中文字幕在线观看免费高清电影 | 91成人免费观看视频 | 91免费黄视频 | 亚洲国产日韩av | 久久国内免费视频 | 欧美精品亚洲二区 | 高清av影院 | av女优中文字幕在线观看 | 四虎国产精品免费观看视频优播 | 狠狠色丁香婷婷 | 国产精品久久片 | 久久99国产精品二区护士 | 日韩在线免费观看视频 | 国产理伦在线 | 国产精品自产拍在线观看中文 | 国产日产精品一区二区三区四区的观看方式 | 国产在线中文字幕 | 午夜影院一级 | 久久久五月天 | 欧美一区二区三区四区夜夜大片 | 高清国产在线一区 | 国产免费人成xvideos视频 | 狠狠狠色丁香综合久久天下网 | 日韩成人免费观看 | 欧美精选一区二区三区 | 国产视频在线一区二区 | 99视频精品视频高清免费 | 97人人澡人人添人人爽超碰 | 国产美女免费 | 激情视频91| 久久视频在线观看中文字幕 | 久久久久久网站 | 久久精品99国产国产精 | 久久精品国产v日韩v亚洲 | 91av国产视频 | 日韩久久精品一区二区 | 国产精品久久久久久久久久不蜜月 | 99国产精品免费网站 | 精品无人国产偷自产在线 | 青春草免费在线视频 | 日韩视频免费观看高清 | 成人app在线播放 | 国产精品久久久久久一区二区 | 69xx视频| 亚洲无吗天堂 | 国产乱老熟视频网88av | 成人在线播放av | 天堂av最新网址 | 97看片吧| 成人av片免费看 | 中文字幕在线看视频 | 人人躁 | 亚洲激情一区二区三区 | 狠狠的干 | 日韩免费成人 | 成人av免费 | 亚洲v欧美v国产v在线观看 | 精品国产不卡 | 国产高清亚洲 | 韩日视频在线 | 欧美性超爽 | 在线观看视频一区二区 | 日韩超碰在线 | 久久婷婷色| 天天干天天干天天色 | 最新国产福利 | 国产91免费在线 | 日本精品久久久久久 | 日韩精品一区二 | 久久精品综合 | 国产精品日韩在线 | 国产精品对白一区二区三区 | 欧美成人区 | 精品一区二区综合 | 久久都是精品 | 婷香五月 | 久久精品免费看 | 免费电影播放 | 91亚洲国产成人久久精品网站 | 亚洲mv大片欧洲mv大片免费 | 国产91在线看 | 国产精品com | 国产三级精品三级在线观看 | 亚洲三级国产 | 91一区一区三区 | 日操操| 伊人看片 | a级片久久 | 一区二区成人国产精品 | 国产视频18 | 国产小视频你懂的 | 99色在线| 黄色精品国产 | 久久免费大片 | 久久人人精品 | 成年人电影免费看 | 国产精品乱码一区二区视频 | 91成人精品国产刺激国语对白 | 国产精品久久久久av免费 | 亚洲成av人片在线观看www | 国产人成精品一区二区三 | 国产91免费观看 | 国内视频1区 | 一区二区成人国产精品 | 国产中文字幕91 | 欧美性爽爽 | 91漂亮少妇露脸在线播放 | 成人免费视频免费观看 | 91精品啪在线观看国产81旧版 | 欧洲一区精品 | 麻豆视频在线观看免费 | 激情五月婷婷激情 | 国产亚洲一区二区在线观看 | 免费a一级| 精品国产一区二 | 综合色久 | 99在线视频网站 | 91色在线观看视频 | 91九色蝌蚪国产 | 精品91在线| 麻豆精品视频在线观看免费 | 国产精品不卡av | 国产原厂视频在线观看 | 色午夜影院 | 欧美韩国在线 | 伊人精品影院 | 欧美日韩免费看 | 18国产精品白浆在线观看免费 | 特级毛片网站 | 免费在线观看成人 | 天堂视频一区 | 九九有精品 | 精品国产综合区久久久久久 | 亚洲精品 在线视频 | 免费看网站在线 | 欧美亚洲成人免费 | 欧美激情综合色综合啪啪五月 | 亚洲黄色免费电影 | 一区二区三区四区免费视频 | 国产手机免费视频 | 免费看特级毛片 | 激情欧美一区二区三区免费看 | 又黄又爽又无遮挡的视频 | 国产精品9区 | 久久精品视频一 | 久久国产精品一区二区三区四区 | 欧美一级久久 | 国产精品久久久久一区二区三区共 | 成人在线免费看视频 | 三上悠亚一区二区在线观看 | 亚洲国产欧美在线看片xxoo | 亚洲精品永久免费视频 | 91亚色免费视频 | 亚洲午夜精品在线观看 | 天天做天天看 | 激情婷婷亚洲 | 欧美一区二区三区在线看 | 黄色片免费看 | 操综合| 欧美日韩精品免费观看视频 | 在线观看视频99 | 51精品国自产在线 | 免费精品视频在线 | 2018好看的中文在线观看 | 久久精品99视频 | 久久精品网站免费观看 | av在线专区 | 最新国产精品亚洲 | 少妇自拍av | 国产精品精品国产婷婷这里av | av大全免费在线观看 | 久久综合九色综合欧美就去吻 | 蜜桃视频日韩 | 国产69久久精品成人看 | 美女精品网站 | 麻豆91在线播放 | 久久免费视频在线观看6 | 成人中文字幕+乱码+中文字幕 | 欧美少妇xxxxxx | 91麻豆精品国产91久久久久 | 97在线看| 深夜免费福利在线 | 一级a毛片高清视频 | 96亚洲精品久久 | 天天操天天吃 | 激情文学综合丁香 | 99久久精品费精品 | 久久精品国产亚洲 | 亚洲免费在线视频 | 成人午夜在线电影 | 91精品国产乱码 | 高清av在线免费观看 | 在线观看视频你懂的 | 亚洲综合黄色 | 成人一级黄色片 | 日日添夜夜添 | 亚洲精品国产欧美在线观看 | 亚洲精品午夜一区人人爽 | 五月天六月婷婷 | 日韩精品视频久久 | 国产成人精品免高潮在线观看 | 视频在线99re | 久久理论视频 | 久久99免费视频 | 久久久久久久久久久久久国产精品 | 99免费看片| 91看片淫黄大片一级在线观看 | 国产在线第三页 | 欧美另类视频 | 亚洲色图美腿丝袜 | 亚洲婷婷丁香 | 久久96国产精品久久99软件 | 久久国精品 | 国产中文字幕三区 | 视频一区亚洲 | 公开超碰在线 | 精品久久综合 | 欧美激情精品久久久久久免费 | 久久天天操 | 日韩欧美视频二区 | 夜夜看av| 久久久国产精品视频 | 干 操 插 | 欧美日韩视频一区二区三区 | 久久久免费毛片 | 国产精品一区免费观看 | 久草久草在线 | 久久久久免费精品国产 | 激情婷婷网 | 精品一区二区日韩 | 中文字幕视频播放 | 久久系列 | 国产尤物一区二区三区 | 久久在线免费观看视频 | 久久日韩精品 | 久久人人爽人人爽人人片av软件 | av大全在线播放 | 久久精品视频在线看 | 玖玖视频网 | 欧美日韩视频免费 | 玖玖在线视频观看 | 日韩av三区 | 在线日本看片免费人成视久网 | 91黄色在线视频 | 一区二区三区高清在线 | 国产欧美精品一区二区三区四区 | 黄色网址中文字幕 | 亚洲精品乱码久久久久久蜜桃欧美 | 色网站免费在线观看 | 亚洲精品麻豆视频 | 99性视频 | 中文字幕在线观看完整 | 久久精久久精 | 在线观看精品黄av片免费 | 99色免费视频 | 午夜精品久久久久久久久久久久 | 五月天最新网址 | 久久人人爽av | 九九热精品视频在线观看 | av网站手机在线观看 | 中文字幕在线看视频国产 | 激情导航| 日韩在线欧美在线 | 欧美大荫蒂xxx | 成人午夜免费剧场 | 国产日产精品一区二区三区四区 | 在线免费看片 | 久久精品—区二区三区 | 国产一线在线 | 99视频国产精品免费观看 | 亚洲人人精品 | 婷婷综合影院 | 亚洲热视频 | 国产精品18久久久久vr手机版特色 | 欧美午夜a | av高清在线 | 超碰在线97国产 | 精品国产乱码久久久久久浪潮 | 日韩高清一区二区 | 国产精品 美女 | 国产在线视频一区二区三区 | 国产一及片| 免费在线一区二区三区 | 欧美婷婷色 | 天天操天天射天天爱 | 成人av免费看 | 欧洲亚洲激情 | 色狠狠操 | 在线观看视频色 | 色综合天 | 亚洲国产精品视频在线观看 | 欧美男女爱爱视频 | 91九色精品 | 日本九九视频 | 欧美日韩在线免费观看视频 | 麻豆视屏 | 99久久超碰中文字幕伊人 | 欧美激情精品久久久久久 | 免费无遮挡动漫网站 | 久久免费视频国产 | 97在线观看免费高清完整版在线观看 | 97免费在线观看 | 五月天久久综合 | 日韩精品视频免费在线观看 | 久久九九免费视频 | 五月激情av| 欧美激情在线看 | 97在线观看视频 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 天天干天天在线 | 国产一线二线三线性视频 | 日韩精品亚洲专区在线观看 | 久久久免费看片 | 国产成人精品在线 | 国内精品视频一区二区三区八戒 | 米奇四色影视 | 九九热免费在线视频 | 久草网站在线观看 | 久久久久久久久久亚洲精品 | 亚洲国产精品成人女人久久 | 日韩精品视频一二三 | 在线观看色网 | 久草a视频 | 久久综合免费 | 国产精品一区免费在线观看 | 国产精品99久久久精品免费观看 | 中文字幕韩在线第一页 | 91资源在线观看 | 黄色app网站在线观看 | 国产一级免费在线观看 | 精品视频123区在线观看 | 国产又粗又长的视频 | 国产91在线观 | 91成人国产| 久久调教视频 | 国产福利不卡视频 | 96久久| 成年人在线 | 国产玖玖精品视频 | 欧美一级欧美一级 | 中文字幕a∨在线乱码免费看 | 中文av一区二区 | 日p在线观看 | 国内精品久久久久久久 | 菠萝菠萝蜜在线播放 | 久久观看 | 国产精品99久久久久久武松影视 | 91一区一区三区 | va视频在线观看 | 成人精品一区二区三区电影免费 | 欧美一区二区伦理片 | 天天操夜夜做 | 国产成人精品日本亚洲999 | 成人在线免费观看网站 | 亚洲精品伦理在线 | 国语自产偷拍精品视频偷 | 一区二区三区免费在线播放 | 色综合久久网 | 国产专区视频在线观看 | 婷婷午夜天 | av天天干 | 在线观看视频在线 | 波多野结衣精品视频 | 久久精品欧美一区 | 九九九热精品免费视频观看网站 | 国产精品福利无圣光在线一区 | 中文字幕视频网站 | 在线免费观看国产精品 | 日韩影视精品 | 伊人五月在线 | 91成年视频 | 五月婷婷爱 | 欧美日韩精品在线一区二区 | japanese黑人亚洲人4k | 日韩久久视频 | 五月激情丁香婷婷 | 97免费| 欧美久久久久久久 | 成人在线观看免费 | 超碰在线天天 | 91精品免费在线视频 | av成人资源 | 亚洲三级精品 | 97人人艹 | 久久99视频免费观看 | 久久99视频免费 | 亚洲精品小区久久久久久 | 久久综合给合久久狠狠色 | www.色婷婷.com | 精品久久久久久综合日本 | 日韩免费观看一区二区三区 | 国产精品对白一区二区三区 | 午夜精品久久久久久久久久久久久久 | 久久久久女人精品毛片九一 | 国产一区精品在线 | 日本中文字幕影院 | 国产又粗又猛又黄又爽 | 日韩啪视频 | 精品久久一区二区三区 | 97色综合 | 日韩欧美视频免费看 | 精品嫩模福利一区二区蜜臀 | 一区二区三区在线不卡 | 手机在线看a | 最近高清中文字幕 | 日韩精品免费在线观看 | 一本一本久久a久久精品综合 | 国产日韩在线一区 | 免费在线观看国产黄 | 国产精品手机在线播放 | 国产精品成人一区 | 在线观看va | 成人免费看片网址 | 69久久99精品久久久久婷婷 | 亚洲精选在线 | 成人精品久久 | 91精品啪 | 国产麻豆视频在线观看 | 欧美国产日韩激情 | 国产色视频一区二区三区qq号 | 五月婷婷网站 | 久久草草热国产精品直播 | 久久视频一区二区 | 国产精品涩涩屋www在线观看 | 欧美影片 | 97视频免费看 | 97操操操 | 国产资源免费在线观看 | 天天爽天天爽天天爽 | 日韩中文字幕a | 国产精品 中文字幕 亚洲 欧美 | 亚洲精品成人 | 日韩高清www | 亚洲精品免费观看视频 | 97超碰成人 | 亚洲欧美国产日韩在线观看 | 欧美黑人巨大xxxxx | 国产一区在线看 | 亚洲高清激情 | 国内视频在线 | 婷婷中文字幕 | 免费视频xnxx com | 免费人成网ww44kk44 | 欧美 日韩 国产 中文字幕 | 在线视频你懂 | 色丁香久久 | 日日添夜夜添 | 香蕉视频亚洲 | 91麻豆文化传媒在线观看 | 人人爽人人片 | 狠狠色狠狠色综合日日92 | 狠狠狠色丁香婷婷综合久久五月 | 91精品福利在线 | 欧美色久 | 亚洲国产三级 | 婷婷六月网 | 天天射天天艹 | 久久久人人人 | 欧美性黑人 | 欧美日本不卡高清 | 六月丁香社区 | 国产黄色av网站 | 久久视频免费 | 亚洲精品综合欧美二区变态 | 久草免费手机视频 | av激情五月 | 亚洲一区美女视频在线观看免费 | 波多野结衣一区 | 亚洲欧美国产精品va在线观看 | 青草视频在线 | 日日爱999 | 99视频在线观看一区三区 | japanesefreesex中国少妇 | 国产精品国内免费一区二区三区 | 日韩精品一区二区免费视频 | 国产亚洲精品久久久久久久久久久久 | 久久日本视频 | 免费在线播放 | 色吊丝在线永久观看最新版本 | 99精品视频在线观看 | 91激情视频在线观看 | 精品专区一区二区 | 久久99热久久99精品 | 精品视频中文字幕 | 国产美女被啪进深处喷白浆视频 | 久久久久欧美精品 | 天天操天天干天天操天天干 | 久久久久久在线观看 | 最新av中文字幕 | 中文字幕资源在线 | 日韩av电影免费在线观看 | 97av.com| 亚洲高清色综合 | 日韩欧美一区二区三区在线观看 | 911久久香蕉国产线看观看 | 99电影456麻豆 | 午夜精品视频一区 | 在线免费中文字幕 | 精品国产一区二区三区噜噜噜 | 超级碰碰碰视频 | 在线影院中文字幕 | 九九综合久久 | 久热超碰 | 在线视频在线观看 | 久久免费资源 | 国产精品va在线播放 | 国产美女网站在线观看 | 夜夜骑天天操 | 日韩二区在线 | 天天舔天天射天天操 | 91香蕉视频黄色 | 又黄又爽免费视频 | 日韩在线电影观看 | 91精品啪在线观看国产81旧版 | 黄色一级在线免费观看 | 2024国产精品视频 | 国产精品免费视频网站 | 日韩在线影视 | 中文字幕一区二区三区视频 | 丁香电影小说免费视频观看 | 国产91亚洲精品 | 欧美a级在线 | 久久精品国产亚洲a | 久久er99热精品一区二区三区 | 国产精品99久久久久久久久 | 超碰公开97 | 91精品国产自产在线观看永久 | 午夜视频二区 | 99热精品在线观看 | 久久久99精品免费观看app | 国产99区 | 视频高清| 97在线视频免费 | 91精品国产一区二区三区 | 天天色天天上天天操 | 精品国产视频在线 | 97成人在线 | 成人久久18免费网站麻豆 | 在线观看网站你懂的 | 国产精品黄色影片导航在线观看 | 亚洲 中文 在线 精品 | 日韩美女免费线视频 | 精品亚洲欧美无人区乱码 | 成片视频免费观看 | 成人一级电影在线观看 | 最近中文字幕完整视频高清1 | 91超级碰 | 国产一区二区在线免费播放 | www,黄视频 | 国产高清成人av | 中文字幕亚洲精品在线观看 | 色五丁香 | 免费人成网ww44kk44 | 亚洲激情在线观看 | 啪啪激情网 | 黄色成人毛片 | 在线视频日韩精品 | 国产精品系列在线观看 | 亚州国产视频 | 成人中文字幕av | 国产精品久久久久永久免费看 | 精品一区精品二区高清 | 亚洲一区欧美精品 | 91香蕉嫩草 | 开心色插 | 黄色av免费电影 | 天天综合天天综合 | 国产 日韩 在线 亚洲 字幕 中文 | 日本中文字幕在线免费观看 | 97电影手机| 一区二区 不卡 | av一区二区三区在线观看 | 久久美女视频 | 免费观看高清 | www色网站 | 国产一级在线免费观看 | 亚洲资源网 | 香蕉在线视频播放网站 | 欧美日韩成人一区 | 国产精品99在线观看 | 国产96在线观看 | 午夜av剧场 | 狠狠干狠狠艹 | sm免费xx网站 | 狠狠狠狠狠狠操 | 久久天天躁狠狠躁亚洲综合公司 | 国产又粗又硬又长又爽的视频 | 日韩高清久久 | 人人澡人人澡人人 | 欧美色就是色 | 亚洲一级免费电影 | 精品久久久久久久久久久久 | 色婷婷成人 | 亚洲成人黄色av | 五月天婷婷在线视频 | 国产视频九色蝌蚪 | 免费男女羞羞的视频网站中文字幕 | 国产一区影院 | 欧洲一区二区在线观看 | 国产成人精品一区二区三区免费 | 天堂网av在线 | 婷婷六月在线 | 视频成人永久免费视频 | 日韩av一区二区在线播放 | 99久久精品免费看国产免费软件 | 中文字幕在线视频精品 | 国产高清精 | 91日韩在线播放 | 国产精品久久久久久久久蜜臀 | 欧美日本不卡高清 | 黄色成人91| 日韩精品久久久久久久电影99爱 | 综合激情久久 | 免费在线观看毛片网站 | 91成人精品 | 91精品久久久久久久91蜜桃 | 视频国产在线 | 国产成人专区 | 天天射天天射天天 | 国产专区在线播放 | 久久国产欧美日韩精品 | 91超在线 | 国产高清视频在线播放 | 99草视频| 九九99 | 在线观看视频黄色 | 黄色一及电影 | 91麻豆精品国产91 | 99热超碰| 成人午夜免费福利 | 黄色大片日本免费大片 | 精品夜夜嗨av一区二区三区 | 久久精品3 | 中国美女一级看片 | 色中射 | 狠狠干 狠狠操 | 国产精品资源网 | 日韩视频免费观看高清 | 国产精品福利一区 | 久久精品视频免费 | 91av视频在线观看 | 狠狠操操操 | 99久热在线精品视频观看 | 国产性天天综合网 | 91在线产啪 | 五月色丁香 | 91精品国产欧美一区二区 | 午夜久久久久久久 | 国色天香在线 | 婷婷亚洲五月 | 99视频导航 | 国产精品观看 | av中文字幕在线看 | 亚洲三级在线播放 | 欧美性久久久久久 | 免费黄色av. | 久久理论电影 | 国产精品ssss在线亚洲 | 97在线观看免费高清 | 精品免费视频. | 国产二区电影 | 精品一区 在线 | 国产精品理论片 | 久久99久久99精品免观看软件 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产亚洲午夜高清国产拍精品 | 日韩精品一区二区在线 | 伊人久久av | 精品国产伦一区二区三区 | 欧美久久久久久久久久久 | 国产亚洲精品久久网站 | 亚洲综合视频在线 | 久久综合久久八八 | 五月综合在线观看 | 色综合久久久久久久久五月 | 欧美va天堂在线电影 | 国产不卡网站 | 国产高清在线精品 | 一区二区三区高清在线 | 国际精品久久 | 欧美日韩国产一区二 | 人人干天天干 | 中文字幕日韩精品有码视频 | 亚洲人av免费网站 | 亚洲免费视频在线观看 | 精品久久九九 | 久久99九九99精品 | 日韩区欠美精品av视频 | 久久艹影院 | 黄色视屏在线免费观看 | 亚洲 综合 专区 | 97超碰人人澡人人 | 亚洲丁香日韩 | 国产一区二区综合 | 亚洲精品视频免费在线 | 香蕉97视频观看在线观看 | 91一区一区三区 | 久久人91精品久久久久久不卡 | 91社区国产高清 | 婷婷激情五月综合 | 91自拍91| 精品九九九 | 久久久久9999亚洲精品 | 最近中文字幕免费视频 | 日韩午夜网站 | 亚洲精品久久在线 | 亚洲春色综合另类校园电影 | 丁香婷婷综合激情五月色 | 特级aaa毛片 | 亚洲天堂网视频在线观看 | 高潮久久久久久 | 人人舔人人爽 | 在线视频成人 | 一级特黄aaa大片在线观看 | 嫩草伊人久久精品少妇av | 欧美日韩视频一区二区 | 日韩视频中文字幕在线观看 | 久草视频在线免费看 | 欧美亚洲三级 | av免费线看 | 国产视频一级 | 久久久久久久久久久高潮一区二区 | 欧美日韩亚洲国产一区 | 欧美日韩久久一区 | 有没有在线观看av | 精品在线视频一区二区三区 | 国产精品国产三级国产aⅴ入口 | 97人人澡人人添人人爽超碰 | 99精品国产99久久久久久97 | 成人免费视频观看 | 人人爽久久久噜噜噜电影 | 久久精品一区二区 | 亚洲黄色高清 | 久久国产精品99久久久久久老狼 | 在线精品在线 | 色婷婷综合久色 | 天天天干夜夜夜操 | 日韩二区在线播放 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 欧美老女人xx | 国产高清视频在线播放一区 | 国产美女黄网站免费 | 亚洲区另类春色综合小说 | 欧美日韩中文字幕综合视频 | 欧美激情一区不卡 | 亚洲精品动漫成人3d无尽在线 | 免费高清看电视网站 | 成年人av在线播放 | 久久成人综合视频 | 在线直播av | 亚洲精品观看 | 99久久精品免费一区 | 五月激情姐姐 | 激情丁香在线 | 亚洲少妇xxxx | 亚洲九九影院 | 久久精品99久久 | 国产男男gay做爰 | 中文字幕影片免费在线观看 | 免费高清在线视频一区· | 午夜视频免费播放 | 日本在线观看中文字幕 | 久久久在线免费观看 | 欧美日韩色婷婷 | 国产乱视频 | 日韩精品不卡在线 | 日韩免| 亚洲激情在线视频 | 欧美 亚洲 另类 激情 另类 | 色婷婷六月天 | 91视频传媒| 欧美另类xxxxx | .精品久久久麻豆国产精品 亚洲va欧美 | 免费观看久久久 |