久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

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

Java實戰之用springboot+netty實現簡單的一對一聊天

瀏覽:105日期:2022-08-13 16:05:31
一、引入pom

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <groupId>com.chat.info</groupId> <artifactId>chat-server</artifactId> <version>1.0-SNAPSHOT</version> <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --> </parent> <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.8</java.version> </properties> <dependencies><!-- web --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.33.Final</version></dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency><!-- fastjson --><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.56</version></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency> </dependencies> <build><plugins> <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId> </plugin></plugins> </build></project>二、創建netty 服務端

package com.chat.server; import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.nio.NioServerSocketChannel;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Component; import javax.annotation.PostConstruct;import javax.annotation.PreDestroy; @Component@Slf4jpublic class ChatServer { private EventLoopGroup bossGroup; private EventLoopGroup workGroup; private void run() throws Exception {log.info('開始啟動聊天服務器');bossGroup = new NioEventLoopGroup(1);workGroup = new NioEventLoopGroup();try { ServerBootstrap serverBootstrap = new ServerBootstrap(); serverBootstrap.group(bossGroup, workGroup) .channel(NioServerSocketChannel.class) .childHandler(new ChatServerInitializer()); //啟動服務器 ChannelFuture channelFuture = serverBootstrap.bind(7000).sync(); log.info('開始啟動聊天服務器結束'); channelFuture.channel().closeFuture().sync(); } finally { bossGroup.shutdownGracefully(); workGroup.shutdownGracefully();} } /** * 初始化服務器 */ @PostConstruct() public void init() {new Thread(() -> { try {run(); } catch (Exception e) {e.printStackTrace(); }}).start(); } @PreDestroy public void destroy() throws InterruptedException {if (bossGroup != null) { bossGroup.shutdownGracefully().sync();}if (workGroup != null) { workGroup.shutdownGracefully().sync();} }}

package com.chat.server; import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelPipeline;import io.netty.channel.socket.SocketChannel;import io.netty.handler.codec.http.HttpObjectAggregator;import io.netty.handler.codec.http.HttpServerCodec;import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler;import io.netty.handler.stream.ChunkedWriteHandler; public class ChatServerInitializer extends ChannelInitializer<SocketChannel> { @Override protected void initChannel(SocketChannel socketChannel) throws Exception {ChannelPipeline pipeline = socketChannel.pipeline();//使用http的編碼器和解碼器pipeline.addLast(new HttpServerCodec());//添加塊處理器pipeline.addLast(new ChunkedWriteHandler()); pipeline.addLast(new HttpObjectAggregator(8192)); pipeline.addLast(new WebSocketServerProtocolHandler('/chat'));//自定義handler,處理業務邏輯pipeline.addLast(new ChatServerHandler()); }}

package com.chat.server; import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.chat.config.ChatConfig;import io.netty.channel.Channel;import io.netty.channel.ChannelHandlerContext;import io.netty.channel.SimpleChannelInboundHandler;import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;import io.netty.util.AttributeKey;import lombok.extern.slf4j.Slf4j; import java.time.LocalDateTime; @Slf4jpublic class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocketFrame> { @Override protected void channelRead0(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame textWebSocketFrame) throws Exception {//傳過來的是json字符串String text = textWebSocketFrame.text();JSONObject jsonObject = JSON.parseObject(text);//獲取到發送人的用戶idObject msg = jsonObject.get('msg');String userId = (String) jsonObject.get('userId');Channel channel = channelHandlerContext.channel();if (msg == null) { //說明是第一次登錄上來連接,還沒有開始進行聊天,將uid加到map里面 register(userId, channel);} else { //有消息了,開始聊天了 sendMsg(msg, userId);} } /** * 第一次登錄進來 * * @param userId * @param channel */ private void register(String userId, Channel channel) {if (!ChatConfig.concurrentHashMap.containsKey(userId)) { //沒有指定的userId ChatConfig.concurrentHashMap.put(userId, channel); // 將用戶ID作為自定義屬性加入到channel中,方便隨時channel中獲取用戶ID AttributeKey<String> key = AttributeKey.valueOf('userId'); channel.attr(key).setIfAbsent(userId);} } /** * 開發發送消息,進行聊天 * * @param msg * @param userId */ private void sendMsg(Object msg, String userId) {Channel channel1 = ChatConfig.concurrentHashMap.get(userId);if (channel1 != null) { channel1.writeAndFlush(new TextWebSocketFrame('服務器時間' + LocalDateTime.now() + ' ' + msg));} } /** * 一旦客戶端連接上來,該方法被執行 * * @param ctx * @throws Exception */ @Override public void handlerAdded(ChannelHandlerContext ctx) throws Exception {log.info('handlerAdded 被調用' + ctx.channel().id().asLongText()); } /** * 斷開連接,需要移除用戶 * * @param ctx * @throws Exception */ @Override public void handlerRemoved(ChannelHandlerContext ctx) throws Exception {removeUserId(ctx); } /** * 移除用戶 * * @param ctx */ private void removeUserId(ChannelHandlerContext ctx) {Channel channel = ctx.channel();AttributeKey<String> key = AttributeKey.valueOf('userId');String userId = channel.attr(key).get();ChatConfig.concurrentHashMap.remove(userId);log.info('用戶下線,userId:{}', userId); } /** * 處理移除,關閉通道 * * @param ctx * @param cause * @throws Exception */ @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {ctx.close(); }}三、存儲用戶channel 的map

package com.chat.config; import io.netty.channel.Channel; import java.util.concurrent.ConcurrentHashMap; public class ChatConfig { public static ConcurrentHashMap<String, Channel> concurrentHashMap = new ConcurrentHashMap(); }四、客戶端html

<!DOCTYPE html><html lang='en' xmlns:th='http://www.thymeleaf.org'><head> <meta charset='UTF-8'> <title>Title</title> <script>var socket;//判斷當前瀏覽器是否支持websocketif (window.WebSocket) { //go on socket = new WebSocket('ws://localhost:7000/chat'); //相當于channelReado, ev 收到服務器端回送的消息 socket.onmessage = function (ev) {var rt = document.getElementById('responseText');rt.value = rt.value + 'n' + ev.data; } //相當于連接開啟(感知到連接開啟) socket.onopen = function (ev) {var rt = document.getElementById('responseText');rt.value = '連接開啟了..'var userId = document.getElementById('userId').value;var myObj = {userId: userId};var myJSON = JSON.stringify(myObj);socket.send(myJSON) } //相當于連接關閉(感知到連接關閉) socket.onclose = function (ev) {var rt = document.getElementById('responseText');rt.value = rt.value + 'n' + '連接關閉了..' }} else { alert('當前瀏覽器不支持websocket')} //發送消息到服務器function send(message) { if (!window.socket) { //先判斷socket是否創建好return; } if (socket.readyState == WebSocket.OPEN) {//通過socket 發送消息var sendId = document.getElementById('sendId').value;var myObj = {userId: sendId, msg: message};var messageJson = JSON.stringify(myObj);socket.send(messageJson) } else {alert('連接沒有開啟'); }} </script></head><body><h1 th:text='${userId}'></h1><input type='hidden' th:value='${userId}' id='userId'><input type='hidden' th:value='${sendId}' id='sendId'><form onsubmit='return false'> <textarea name='message' style='height: 300px; width: 300px'></textarea> <input type='button' value='發送' onclick='send(this.form.message.value)'> <textarea style='height: 300px; width: 300px'></textarea> <input type='button' value='清空內容' onclick='document.getElementById(’responseText’).value=’’'></form></body></html>五、controller 模擬用戶登錄以及要發送信息給誰

package com.chat.controller; import com.chat.config.ChatConfig;import io.netty.channel.Channel;import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;@Controllerpublic class ChatController { @GetMapping('login') public String login(Model model, @RequestParam('userId') String userId, @RequestParam('sendId') String sendId) {model.addAttribute('userId', userId);model.addAttribute('sendId', sendId);return 'chat'; } @GetMapping('sendMsg') public String login(@RequestParam('sendId') String sendId) throws InterruptedException {while (true) { Channel channel = ChatConfig.concurrentHashMap.get(sendId); if (channel != null) {channel.writeAndFlush(new TextWebSocketFrame('test'));Thread.sleep(1000); }} } }六、測試

登錄成功要發消息給bbb

登錄成功要發消息給aaa

Java實戰之用springboot+netty實現簡單的一對一聊天

Java實戰之用springboot+netty實現簡單的一對一聊天

到此這篇關于Java實戰之用springboot+netty實現簡單的一對一聊天的文章就介紹到這了,更多相關springboot+netty實現一對一聊天內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 国产高清在线精品一区 | 欧美aaa视频| 一区二区免费视频 | 999久久久国产999久久久 | 色婷网| 情五月| 欧美日韩国产综合视频 | 久久成人18免费网站 | 欧美一区二区三区电影 | 国产精品对白一区二区三区 | 超碰天天| 国产欧美综合视频 | 国产免费看| 欧美一级黄色片网站 | 精品欧美一区二区三区久久久小说 | 精品亚洲一区二区 | 成人免费在线观看 | 夜本色| 国产精品久久久久久亚洲调教 | 成人免费看黄 | 日本美女一区二区 | 欧美在线综合 | 在线视频a| 国产精品大片在线观看 | 毛片com | 九九porny88av| 国产一区二区三区精品久久久 | 性色爽爱 | 国产精品成人国产乱一区 | 免费看的毛片 | 成人高清网站 | 亚洲美女视频 | 久在线观看 | 黄色在线免费观看 | 一级网站在线观看 | 久久草在线视频 | 青娱乐av| 久久窝 | 午夜在线| 色播99| 欧洲精品一区二区 | 国产色av | 91视频免费观看网址 | а天堂中文最新一区二区三区 | 久久久久久艹 | 色婷婷影院 | 久久99精品视频 | 欧美一级做性受免费大片免费 | 日韩av免费在线播放 | 日韩啊啊啊 | 精品香蕉一区二区三区 | 中文字幕乱码一区二区三区 | 久久人人爽人人爽人人片亚洲 | 色综合成人 | 嫩草最新网址 | 中文字幕一区二区三区四区 | 国产精品网站在线观看 | 99久久婷婷国产综合精品 | 亚洲高清一区二区三区 | 久久精品店 | 亚洲高清在线观看 | 国产一区二区在线免费观看 | 一级在线播放 | 亚洲香蕉精品 | 五月婷婷丁香婷婷 | 一区二区三区欧美在线 | 天天拍天天操 | 国产精品二区一区二区aⅴ污介绍 | 精品视频一区二区三区 | 嫩草影院黄色 | 日韩欧美一区二区三区久久婷婷 | 日韩视频久久 | 久久在线播放 | 国产伦精品一区二区三区在线 | av性色| 99草视频 | 欧美日韩一区二区三区在线观看 | 男人久久天堂 | 91在线网址| 久久大陆| 嫩草懂你 | www,四虎| 日韩精品免费视频 | 精品久| 人人干人人爱 | 伊人网站| 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 国产成人精品一区二区三区四区 | 97视频久久久 | 久久久久网站 | 日韩在线中文字幕 | 国产视频三区 | 欧美日韩国产一区二区三区 | www.成人| 午夜小视频在线观看 | 中文字幕一区二区三区不卡 | 国产毛片在线 | 日日干夜夜操 | 国产精品一区二区三区在线播放 | 亚洲一区成人 | 98精品国产高清在线xxxx天堂 | 天天干天天草 | 一级大片一级一大片 | 香蕉视频成人在线观看 | 91高清在线| 最新日韩av网址 | 天天天操 | 欧美日韩综合精品 | 亚洲免费在线观看 | 日日骚 | 国产欧精精久久久久久久 | 成人精品一区二区三区 | 久久99精品久久久 | 九热精品 | 狠狠ri| 免费观看的av | 日韩成人免费 | 国产精品一区二区三区四区 | 久久久久久久一区 | 日韩不卡av | 免费观看一级特黄欧美大片 | 精品在线一区二区 | 天天操天天操 | 免费看毛片的网站 | 欧美一区二区三区在线观看视频 | 久久香蕉国产 | 看黄网址| 中文字幕亚洲精品 | 91性高湖久久久久久久久_久久99 | 久草视频网 | 国产激情91久久精品导航 | 中文字幕亚洲一区二区三区 | 日本精品免费在线观看 | 国产激情在线观看 | h亚洲视频 | 国产精品夜夜 | 91久久国产精品 | 欧美1区2区3区 | 91色视频在线观看 | 久久久精品影院 | 婷婷免费视频 | 亚洲一区中文字幕永久在线 | 久久少妇免费看 | 国产一区二区三区四 | 国产一区二区三区精品久久久 | 久草福利在线视频 | 欧美一区二区三区在线观看视频 | 日本成人一二三区 | 亚洲444kkkk在线观看最新 | 午夜精品久久久久 | 国产中文在线 | 羞羞视频免费观看 | 欧美日韩精品一区二区在线播放 | 精品香蕉一区二区三区 | 日韩一日 | 大伊人久久 | 欧美 日韩 国产 在线 | 亚洲成av人片一区二区梦乃 | 福利亚洲 | 性xxxxxxxxx18欧美| 黄色天堂在线观看 | 欧美午夜一区二区三区免费大片 | 国产成人精品网站 | 国产精品久久久久久久久免费桃花 | 91.成人天堂一区 | 免费在线成人av | 一本岛在线视频 | 色一色视频 | 蜜臀精品久久久久久蜜臀 | 日韩在线观看中文字幕 | 欧美精品久久久久久久久 | 国产精品久久免费视频 | 人人鲁人人莫一区二区三区 | 亚洲免费a| 亚洲欧美一区二区精品中文字幕 | h片在线看 | 国户精品久久久久久久久久久不卡 | 黄色精品网站 | 亚洲wu码 | 亚洲欧美国产精品久久 | 91免费电影 | 91精品国产综合久久婷婷香蕉 | 91麻豆精品国产91久久久久久久久 | 欧美日韩视频在线第一区 | 久久的爱| 狠狠狠狠狠狠干 | 在线国产视频 | 久久y| 国产偷录视频叫床高潮对白 | julia一区二区三区中文字幕 | 成人在线不卡 | 国产精品日韩欧美一区二区三区 | 天天插天天操 | 99久久视频 | 国产精彩视频 | 中文字幕日韩欧美一区二区三区 | www.精品 | 91精品国产综合久久久久久蜜月 | 亚洲视频在线看 | 欧美黄色网 | 久久精品国产v日韩v亚洲 | 欧美精品在线视频 | 国产精品久久久久久 | 午夜久久乐 | 欧美一区二区三区久久精品 | 国产精品一二 | 人人爱超碰 | 午夜老湿影院 | 懂色一区二区三区av片 | 欧美日韩中文字幕在线 | 欧美精品一区二区三区在线四季 | 免费看毛片网 | 国产精品黄视频 | 亚洲精品国产第一综合99久久 | 免费在线色 | 91亚洲精品乱码久久久久久蜜桃 | 国产精品成人一区二区三区 | 久久久久香蕉视频 | 国产夜夜夜 | 欧美一级一区 | 成人午夜视频在线观看 | 成人国产在线观看 | 欧美福利在线 | 国产在线观看二区 | 欧美日韩精品一区二区在线播放 | 网站av | 日日干夜夜操 | 精品国产31久久久久久 | 欧美一级免费看 | 亚洲综合无码一区二区 | 天堂资源av | 日韩中文字幕无码一区二区三区 | 在线视频中文字幕 | 国产不卡视频在线观看 | 日韩精品av一区二区三区 | 国产成人精品久久二区二区91 | 91中文字幕在线观看 | 在线播放一区二区三区 | 成人高清网站 | 亚洲午夜精品片久久www慈禧 | 国产精品极品美女在线观看免费 | 久久高清片 | www.99热这里只有精品 | 亚洲欧美国产一区二区三区 | 中文字幕第33页 | 一区二区色 | 犬夜叉在线观看 | 久久久成人精品 | 精品国产乱码久久久久久1区2区 | 国产精品日韩专区 | 亚洲精选一区 | 欧美1区| 国产在线视频网站 | 黄色小视频免费观看 | 国产黄色在线观看 | 精品乱子伦一区二区三区 | 成人妇女免费播放久久久 | 日韩精品在线播放 | 亚洲一区精品在线 | 亚洲精品电影在线一区 | 91精品久久久久久久久 | 欧美福利 | 在线观看欧美一区 | 国产精品第一国产精品 | 夜夜草视频 | 美女视频一区 | 国产一区二区三区久久久 | 久久久久国产一区二区三区 | 国产精品亚洲精品日韩已方 | 中文字幕视频在线观看 | 国产一级影片 | 91免费看 | 国产精品夜色一区二区三区 | 久久99亚洲精品 | 亚洲精品国产精品国自产 | 成人黄视频在线观看 | 亚洲国产高清高潮精品美女 | 99精品视频一区二区三区 | 国产精品免费一区二区三区四区 | 欧美日韩综合视频 | 一区二区三区视频播放 | 一区二区三区成人久久爱 | 狠狠搞狠狠干 | 毛片网站在线 | 天天舔天天干天天操 | 91精品国产乱码久 | 99精品视频在线观看 | 女人夜夜春高潮爽a∨片传媒 | 少妇性l交大片免费一 | 国产丝袜人妖ts黄檬 | 亚洲男人av | 国产成人99久久亚洲综合精品 | 欧美一级片在线 | 亚洲 欧美 精品 | 91精品国产91久久久久久最新 | 国产精品网站在线看 | 一本一道久久久a久久久精品91 | 91精品一区二区 | 欧美精品一区久久 | 精品日韩| 欧美日韩大陆 | 欧美午夜一区 | 久久综合久久久 | 久久久精彩视频 | 一区二区免费视频观看 | 国产一区二区视频在线 | 日本中文在线 | 久久久久国产精品免费免费搜索 | 欧洲尺码日本国产精品 | 久久久久久91亚洲精品中文字幕 | 成人亚洲电影 | 福利片在线观看 | 欧美日韩视频在线 | 中文字幕乱码一区二区三区 | 久久一级| 毛片在线免费 | 国产一区二区视频在线观看 | 日本狠狠操 | 欧美日韩国产中文 | 99久久精品免费看国产免费粉嫩 | 狠狠躁日日躁夜夜躁东南亚 | 美女福利视频网站 | 日韩午夜免费视频 | 欧美日韩国产精品 | 日本一本视频 | 毛片a片| 一区二区中文字幕在线观看 | www.久久久 | 精品视频在线免费 | 亚洲一区中文字幕在线观看 | 中文字幕免费中文 | 欧美激情在线播放 | 四影虎影ww4hu55.com | 久久国产精品毛片 | 四虎新网站 | 国产精品亚欧美一区二区 | 国产精品视频专区 | 欧美精品自拍 | 成人高清av| 一区在线免费观看 | 这里有精品视频 | 一本色道精品久久一区二区三区 | 日韩一区二区三区四区五区 | 亚洲视频久久久 | 欧美精品一区二区在线观看 | 欧洲一区二区三区 | 欧美日韩视频在线第一区 | 日韩中文字幕电影在线观看 | 国产综合视频在线观看 | 国产综合精品视频 | 99精品不卡| 国产高清一区二区 | 欧美天天 | 久久成人综合网 | 成人亚洲网 | av片网| zzz444成人天堂7777 | 色视频网站在线观看 | 成人在线看片 | 狠狠ri| 91视频一区二区三区 | 午夜黄色影院 | 一区二区在线视频 | 噜噜噜噜狠狠狠7777视频 | 日本在线观看 | 国产美女高潮 | 91精品福利| 亚洲av毛片一区二二区三三区 | 亚洲人免费视频 | 一色视频 | 一区二区中文字幕 | 欧洲精品视频在线观看 | 久久国产精品久久久久久电车 | 欧美精品在线一区 | 欧美涩涩网站 | 精品中文字幕一区二区三区 | 99re99| 久久av资源| 97视频免费在线观看 | 日韩精品一区二区三区在线观看 | 国产成人综合一区 | 久久欧美高清二区三区 | 午夜在线视频 | 五月婷婷导航 | 亚洲视频777| 精品视频久久 | 亚洲综合在线一区二区 | 亚洲成人免费视频在线观看 | 日韩欧美一二三区 | 亚洲人成在线播放 | 亚洲成人一区二区三区 | 玖玖爱视频在线 | k8久久久一区二区三区 | 亚洲一区影院 | 极品女神高潮呻吟av久久 | 黄色免费网站在线看 | 精品成人久久 | 欧美日韩精品在线一区 | 中文成人在线 | 欧美精品一二三区 | 国产精品99久久 | 第一色站 | 欧美日韩精品在线 | 国产一区二区综合 | 亚洲精品乱码久久久久久花季 | 欧美一区不卡 | 一级黄色国产 | 久久a毛片| 亚洲成熟少妇视频在线观看 | 看真人视频a级毛片 | 久久久在线 | 欧美日韩一区二区视频在线观看 | 九九视频这里只有精品 | 色xx综合网 | 成人av高清 | 日本在线一二 | 国内精品一级毛片国产99 | 久久加勒比 | av基地网 | 国产一区二区三区久久久久久久久 | 一级看片| 午夜精品久久久久久久久久久久久 | 久久久久av| 91精品国产乱码久久久久久久久 | 国产精品亚洲视频 | 精品一区二区三区在线观看 | 91操碰| 欧美日韩在线视频一区二区 | 久久99精品久久久久子伦 | 久久久久亚洲精品 | 欧美精品福利 | 在线成人免费视频 | 深夜成人小视频 | 麻豆专区一区二区三区四区五区 | 欧美三级在线视频 | 日韩一区二区三区视频 | 日本精品久久久一区二区三区 | 久久成人国产精品 | 国产成人精品亚洲777人妖 | 亚洲色图综合 | 精品视频在线免费 | 精品无人乱码一区二区三区 | 91色在线观看 | 亚洲a在线观看 | 国产无套一区二区三区久久 | 国产精品毛片久久久久久 | 在线观看午夜免费视频 | 热久久免费视频 | 亚洲精品亚洲人成人网 | 日韩欧美中文字幕在线视频 | 精品二区| 亚洲欧美在线视频 | 日韩一区二区三区av | 中文字幕视频网站 | www夜夜操com| 国产www视频| 日韩欧美国产精品综合嫩v 久久久久久国产精品高清 国产目拍亚洲精品99久久精品 | 久久精品播放 | 国产欧美精品一区二区三区四区 | 成人国产精品久久 | 亚洲成人毛片 | 亚洲第一视频 | 欧美,日韩,国产精品免费观看 | 日本中文字幕电影 | 成人免费crm在线观看 | 国产无区一区二区三麻豆 | 国产精品国产三级国产aⅴ无密码 | 欧美日韩亚洲在线 | 久久精品国产99久久久 | 中文字幕亚洲一区二区三区 | 黄毛片网站 | 久久精品店 | 国产精品久久a | 91精品国产综合久久久久久漫画 | 色爱区综合五月激情 | 青娱乐av| 久久99精品久久久久婷婷暖91 | 色综久久 | 一二三四在线视频观看社区 | 久久久久国产精品免费免费搜索 | 天天操狠狠操网站 | 日韩精品1区2区 | 国产一级在线观看 | 国产精品对白一区二区三区 | 亚洲一区二区久久 | 一级免费视频 | 夜夜操天天干 | 人人插人人干 | 国内精品视频一区国产 | 国产性猛交xxxx免费看久久 | 亚洲一区视频 | 美女网站视频免费黄 | 欧美日韩亚洲国产综合 | 日韩欧美在线一区二区 | 亚洲欧美国产一区二区 | 91视频一区二区 | 黄理论视频 | 国产二区三区 | 国产婷婷在线观看 | 91精品国产一区二区三区香蕉 | 国产一区二区三区精品久久久 | 在线日韩欧美 | 国产精品成人在线 | 99精品国产高清一区二区麻豆 | 久久久久久亚洲精品 | 四虎影院网站 | 国产99久久久精品视频 | 国产在线2 | 中文字幕在线第一页 | 精品国产一区二区三区久久久蜜月 | 五月天婷婷色综合 | 国产精品视频 | 日韩精品一区二区三区第95 | 欧美 中文字幕 | 欧美一级特黄aaaaaaa色戒 | 日韩午夜电影在线观看 | 日韩无在线 | 日日视频| 久久久久国产精品免费免费搜索 | 久久美女| 精品欧美黑人一区二区三区 | 一区二区日韩 | 亚洲成熟少妇视频在线观看 | 国产 一区| 亚洲激情一区 | 成人免费影院 | 欧美一区二区三区免费 | hsck成人网 | 999久久久久久久久 国产欧美在线观看 | 亚洲一区二区三区久久 | h在线看| 国产97在线 | 亚洲 | 久久精品小视频 | 亚洲色图偷拍视频 | 免费看一区二区三区 | 欧美一区二区三区 | 污视频在线观看免费 | 天堂国产 | 黄色免费观看 | 日本免费在线视频 | 午夜国产精品成人 | 国内精品一区二区 | 亚洲高清中文字幕 | 亚洲一区二区三区四区五区中文 | 午夜免费小视频 | 五月婷婷激情 | 国产亚洲精品精品国产亚洲综合 | 精品国产一区二区三区性色av | 久久亚洲视频 | 久久久免费视频看看 | 成人国产精品色哟哟 | 日本欧美久久久久 | 国产精品久久久久久久久免费 | 99久久婷婷国产精品综合 | 欧美精品久久久久久久久 | 欧美精品第一页 | 国产视频久久精品 | 亚洲福利国产 | 亚洲 欧美 另类 综合 偷拍 | 伊人无码高清 | 色婷婷综合久久久中文字幕 | 亚洲免费在线 | 在线永久免费观看日韩a | 国产精品精品视频一区二区三区 | 国产精品99久久久久久久vr | 国产成人午夜视频 | 亚洲精品成人在线 | 97久久精品午夜一区二区 | 国产精品无码久久久久 | 国产91一区 | 欧美 日韩 在线播放 | 天天干天天插天天 | 亚洲精品乱码久久久久久蜜桃不爽 | 久久久久高清 | a级毛片免费高清视频 | 成人一区视频 | 黄色一级视频 | 天天干人人 | 欧美日韩国产精品久久久久 | 日韩精品一区二区三区中文在线 | 久久一| 黄色精品视频 | 日本不卡视频 | av在线国产精品 | 久久91精品国产91久久跳 | 日韩中文视频 | 2019天天干 | 簧片毛片 | 色综合久久久 | 日韩在线精品视频 | 日本全黄裸体片 | 国产一区精品电影 | 久久国产精品精品国产 | 亚洲精品一区二区三区在线观看 | 91久久久久久久久久久久久久 | 国产精品高潮呻吟久久av黑人 | 国内精品成人 | 99热国产在线观看 | 日韩在线区 | 九九精品久久久 | 欧美日韩国产精品 | 在线日韩视频 | www.久久.com | 欧美成在线视频 | 成人av影视在线观看 | 在线播放一区二区三区 | 91麻豆精品国产91久久久资源速度 | 欧美日韩中文字幕在线 | 亚洲第一av网站 | 91精品国产综合久久久久久 | 日韩午夜一级片 | 爱操在线 | 日本免费电影一区 | 视频羞羞 | 日韩综合在线 |