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

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot+Netty+WebSocket實(shí)現(xiàn)消息發(fā)送的示例代碼

瀏覽:3日期:2023-04-22 13:14:29

一.導(dǎo)入Netty依賴

<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.25.Final</version> </dependency>

二.搭建websocket服務(wù)器

@Componentpublic class WebSocketServer { /** * 主線程池 */ private EventLoopGroup bossGroup; /** * 工作線程池 */ private EventLoopGroup workerGroup; /** * 服務(wù)器 */ private ServerBootstrap server; /** * 回調(diào) */ private ChannelFuture future; public void start() { future = server.bind(9001); System.out.println('netty server - 啟動(dòng)成功'); } public WebSocketServer() { bossGroup = new NioEventLoopGroup(); workerGroup = new NioEventLoopGroup(); server = new ServerBootstrap(); server.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .childHandler(new WebsocketInitializer()); }}

三.初始化Websocket

public class WebsocketInitializer extends ChannelInitializer<SocketChannel> { @Override protected void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); // ------------------ // 用于支持Http協(xié)議 // ------------------ // websocket基于http協(xié)議,需要有http的編解碼器 pipeline.addLast(new HttpServerCodec()); // 對(duì)寫大數(shù)據(jù)流的支持 pipeline.addLast(new ChunkedWriteHandler()); // 添加對(duì)HTTP請(qǐng)求和響應(yīng)的聚合器:只要使用Netty進(jìn)行Http編程都需要使用 //設(shè)置單次請(qǐng)求的文件的大小 pipeline.addLast(new HttpObjectAggregator(1024 * 64)); //webSocket 服務(wù)器處理的協(xié)議,用于指定給客戶端連接訪問的路由 :/ws pipeline.addLast(new WebSocketServerProtocolHandler('/ws')); // 添加Netty空閑超時(shí)檢查的支持 // 1. 讀空閑超時(shí)(超過一定的時(shí)間會(huì)發(fā)送對(duì)應(yīng)的事件消息) // 2. 寫空閑超時(shí) // 3. 讀寫空閑超時(shí) pipeline.addLast(new IdleStateHandler(4, 8, 12)); //添加心跳處理 pipeline.addLast(new HearBeatHandler()); // 添加自定義的handler pipeline.addLast(new ChatHandler()); }}

四.創(chuàng)建Netty監(jiān)聽器

@Componentpublic class NettyListener implements ApplicationListener<ContextRefreshedEvent> { @Resource private WebSocketServer websocketServer; @Override public void onApplicationEvent(ContextRefreshedEvent event) { if(event.getApplicationContext().getParent() == null) { try { websocketServer.start(); } catch (Exception e) { e.printStackTrace(); } } }}

五.建立消息通道

public class UserChannelMap { /** * 用戶保存用戶id與通道的Map對(duì)象 */// private static Map<String, Channel> userChannelMap; /* static { userChannelMap = new HashMap<String, Channel>(); }*/ /** * 定義一個(gè)channel組,管理所有的channel * GlobalEventExecutor.INSTANCE 是全局的事件執(zhí)行器,是一個(gè)單例 */ private static ChannelGroup channelGroup = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE); /** * 存放用戶與Chanel的對(duì)應(yīng)信息,用于給指定用戶發(fā)送消息 */ private static ConcurrentHashMap<String,Channel> userChannelMap = new ConcurrentHashMap<>(); private UserChannelMap(){} /** * 添加用戶id與channel的關(guān)聯(lián) * @param userNum * @param channel */ public static void put(String userNum, Channel channel) { userChannelMap.put(userNum, channel); } /** * 根據(jù)用戶id移除用戶id與channel的關(guān)聯(lián) * @param userNum */ public static void remove(String userNum) { userChannelMap.remove(userNum); } /** * 根據(jù)通道id移除用戶與channel的關(guān)聯(lián) * @param channelId 通道的id */ public static void removeByChannelId(String channelId) { if(!StringUtils.isNotBlank(channelId)) { return; } for (String s : userChannelMap.keySet()) { Channel channel = userChannelMap.get(s); if(channelId.equals(channel.id().asLongText())) { System.out.println('客戶端連接斷開,取消用戶' + s + '與通道' + channelId + '的關(guān)聯(lián)'); userChannelMap.remove(s); UserService userService = SpringUtil.getBean(UserService.class); userService.logout(s); break; } } } /** * 打印所有的用戶與通道的關(guān)聯(lián)數(shù)據(jù) */ public static void print() { for (String s : userChannelMap.keySet()) { System.out.println('用戶id:' + s + ' 通道:' + userChannelMap.get(s).id()); } } /** * 根據(jù)好友id獲取對(duì)應(yīng)的通道 * @param receiverNum 接收人編號(hào) * @return Netty通道 */ public static Channel get(String receiverNum) { return userChannelMap.get(receiverNum); } /** * 獲取channel組 * @return */ public static ChannelGroup getChannelGroup() { return channelGroup; } /** * 獲取用戶channel map * @return */ public static ConcurrentHashMap<String,Channel> getUserChannelMap(){ return userChannelMap; }}

六.自定義消息類型

public class Message { /** * 消息類型 */ private Integer type; /** * 聊天消息 */ private String message; /** * 擴(kuò)展消息字段 */ private Object ext; public Integer getType() { return type; } public void setType(Integer type) { this.type = type; } public MarketChatRecord getChatRecord() { return marketChatRecord; } public void setChatRecord(MarketChatRecord chatRecord) { this.marketChatRecord = chatRecord; } public Object getExt() { return ext; } public void setExt(Object ext) { this.ext = ext; } @Override public String toString() { return 'Message{' + 'type=' + type + ', marketChatRecord=' + marketChatRecord + ', ext=' + ext + ’}’; }}

七.創(chuàng)建處理消息的handler

public class ChatHandler extends SimpleChannelInboundHandler<TextWebSocketFrame> { private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class); /** * 用來保存所有的客戶端連接 */ private static ChannelGroup clients = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE); /** *當(dāng)Channel中有新的事件消息會(huì)自動(dòng)調(diào)用 */ @Override protected void channelRead0(ChannelHandlerContext ctx, TextWebSocketFrame msg) throws Exception { // 當(dāng)接收到數(shù)據(jù)后會(huì)自動(dòng)調(diào)用 // 獲取客戶端發(fā)送過來的文本消息 Gson gson = new Gson(); log.info('服務(wù)器收到消息:{}',msg.text()); System.out.println('接收到消息數(shù)據(jù)為:' + msg.text()); Message message = gson.fromJson(msg.text(), Message.class); //根據(jù)業(yè)務(wù)要求進(jìn)行消息處理 switch (message.getType()) { // 處理客戶端連接的消息 case 0: // 建立用戶與通道的關(guān)聯(lián) // 處理客戶端發(fā)送好友消息 break; case 1: // 處理客戶端的簽收消息 break; case 2: // 將消息記錄設(shè)置為已讀 break; case 3: // 接收心跳消息 break; default: break; } } // 當(dāng)有新的客戶端連接服務(wù)器之后,會(huì)自動(dòng)調(diào)用這個(gè)方法 @Override public void handlerAdded(ChannelHandlerContext ctx) throws Exception { log.info('handlerAdded 被調(diào)用'+ctx.channel().id().asLongText()); // 添加到channelGroup 通道組 UserChannelMap.getChannelGroup().add(ctx.channel());// clients.add(ctx.channel()); } @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { log.info('{異常:}'+cause.getMessage()); // 刪除通道 UserChannelMap.getChannelGroup().remove(ctx.channel()); UserChannelMap.removeByChannelId(ctx.channel().id().asLongText()); ctx.channel().close(); } @Override public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { log.info('handlerRemoved 被調(diào)用'+ctx.channel().id().asLongText()); //刪除通道 UserChannelMap.getChannelGroup().remove(ctx.channel()); UserChannelMap.removeByChannelId(ctx.channel().id().asLongText()); UserChannelMap.print(); }}

八.處理心跳

public class HearBeatHandler extends ChannelInboundHandlerAdapter { @Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if(evt instanceof IdleStateEvent) { IdleStateEvent idleStateEvent = (IdleStateEvent)evt; if(idleStateEvent.state() == IdleState.READER_IDLE) { System.out.println('讀空閑事件觸發(fā)...'); } else if(idleStateEvent.state() == IdleState.WRITER_IDLE) { System.out.println('寫空閑事件觸發(fā)...'); } else if(idleStateEvent.state() == IdleState.ALL_IDLE) { System.out.println('---------------'); System.out.println('讀寫空閑事件觸發(fā)'); System.out.println('關(guān)閉通道資源'); ctx.channel().close(); } } }}

搭建完成后調(diào)用測(cè)試

1.頁面訪問http://localhost:9001/ws 2.端口號(hào)9001和訪問路徑ws都是我們?cè)谏线吪渲玫模缓髠魅胛覀冏远x的消息message類型。3.大概流程:消息發(fā)送 :用戶1先連接通道,然后發(fā)送消息給用戶2,用戶2若是在線直接可以發(fā)送給用戶,若沒在線可以將消息暫存在redis或者通道里,用戶2鏈接通道的話,兩者可以直接通訊。消息推送 :用戶1連接通道,根據(jù)通道id查詢要推送的人是否在線,或者推送給所有人,這里我只推送給指定的人。

到此這篇關(guān)于SpringBoot+Netty+WebSocket實(shí)現(xiàn)消息發(fā)送的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot Netty WebSocket消息發(fā)送內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 中国特级毛片 | 91精品国产色综合久久不卡98 | 台湾佬成人网 | 嫩草视频免费在线观看 | 欧美在线视频一区 | 毛片在线免费 | 国产精品999| 国产一区二区久久 | 亚洲国产精品网站 | 91tv亚洲精品香蕉国产一区 | 亚洲成人免费视频 | 国产综合精品一区二区三区 | 日韩中文字幕在线视频 | 国产精品二区三区在线观看 | 成人在线视频网站 | 中文字幕成人免费视频 | 久久一区二区三区四区五区 | 久久国产精品视频一区 | 亚洲精品成人在线 | 日韩欧美一区二区三区视频 | 曰本人一级毛片免费完整视频 | 色婷婷综合在线 | 成年免费a级毛片 | 国产激情免费 | 黄色成人在线观看视频 | 欧美亚洲专区 | 中文在线视频 | 国产精品久久av | 欧洲精品久久久 | 午夜国产一级片 | 99久久精品免费 | 精品久久久久久久 | 日韩精品一区二区三区视频播放 | 精品欧美乱码久久久久久 | 成人性视频在线 | 亚洲h在线观看 | 91中文在线观看 | 色黄视频在线观看 | h片免费观看 | 亚洲欧洲精品一区二区 | 91精品国产综合久久福利软件 | 亚洲视频免费网站 | 欧美激情精品 | 国产伦精品一区二区三区四区视频 | 亚洲精品久久久久久久久久久 | 亚洲精品久久久久久久久久久 | 一区二区国产在线观看 | 婷婷久久综合 | 久久国产精品免费一区二区三区 | 久久人人爽人人爽人人片亚洲 | 欧美中文在线 | 久久精品视频在线播放 | 国产成人精品一区二区三区视频 | 国产精品久久久久久亚洲调教 | 亚洲网站在线观看 | 亚洲综合视频 | 久久亚洲天堂 | 成人av播放| 国产视频观看 | 国产精品高潮呻吟久久av黑人 | 日韩在线中文字幕 | 久久黄网 | 天天操,夜夜操 | 亚洲精品无 | 日韩在线不卡一区 | 中文字幕乱码一区二区三区 | 中文视频在线 | 亚洲天堂男人 | 亚洲第一男人天堂 | 精品中文字幕在线 | 99这里只有精品视频 | 综合久久精品 | 日韩在线视频一区 | 永久免费精品视频 | 国产一区二区三区精品久久久 | 另类国产ts人妖高潮系列视频 | 四虎永久在线 | 99re在线视频| 久久久久99精品国产片 | 欧美伦理一区二区 | 精品国产不卡一区二区三区 | 久久久精选 | av男人的天堂在线 | 亚洲精品在线看 | 综合伊人| 亚洲一区二区在线 | 成人免费一区二区三区视频网站 | 日本精品视频在线观看 | 欧美自拍网站 | 日韩在线免费观看网站 | 国产一区二区黑人欧美xxxx | 中文字幕高清 | 成人激情视频在线观看 | 午夜精品视频 | 高清av一区| 精品国产一区二区在线 | 亚洲人成中文字幕在线观看 | 视频在线一区 | 久久99精品国产麻豆婷婷洗澡 | 久久精品免费 | 狠狠操狠狠摸 | 欧美成人精品一区二区三区 | 玖草在线视频 | 国产伦精品一区二区三毛 | 国产精品亚洲成在人线 | 一区二区三区免费视频网站 | 欧美视频在线一区 | 99热精品在线| 午夜视频网 | 国产18av| 一级全黄少妇性色生活片毛片 | 99这里只有精品视频 | 91精品国产综合久久久久久 | 亚洲不卡在线 | 久久精品视 | 龙珠z在线观看 | 欧美久久久久久久久久久 | 日韩专区一区二区三区 | 国产精品一区在线观看 | 国产伦精品一区二区三区高清 | 日本精品视频在线观看 | 九色91在线 | 亚洲视频 欧美视频 | 久久午夜电影 | 日韩大尺度电影在线观看 | 美女视频一区 | 成人天堂资源www在线 | 成人av免费在线观看 | 亚洲福利社区 | 国产人成精品一区二区三 | 男人天堂亚洲 | www.91在线 | 男人天堂网av | 色噜噜视频 | 亚洲免费观看 | 日韩视频国产 | 精品一区二区久久 | 懂色中文一区二区在线播放 | 亚洲一区二区三区四区五区中文 | www亚洲成人 | 一级淫片免费 | 欧美一区永久视频免费观看 | 国产一级特黄视频 | av一级久久 | 九九免费视频 | 久久综合激情 | 精品久久久久久久久久久久久久久久久久 | 国产精品一区二区三区四区 | 欧美视频三级 | 久久久久久久久久久久久九 | 日韩视频在线观看一区 | 国产小视频在线看 | 国产精品成人国产乱一区 | 国产精品久久久久久久午夜片 | 久久www免费视频 | 91视频免费观看 | 91偷拍精品一区二区三区 | 欧美盗摄| 国产精品国产成人国产三级 | 日韩视频免费 | 欧美黄色网络 | 一区二区三区国产在线 | 久热99| 精品人成| 国产a视频| 国产精品自在线 | 成人超碰 | 日本色道视频 | 亚洲一区精品在线 | 日日干夜夜骑 | 成人久久久| 午夜免费视频网站 | 一区二区在线看 | 亚洲精品中文视频 | 日韩视频在线观看一区二区 | 日日操夜夜操天天操 | 亚洲精品国产高清 | 亚洲精品一区二区三区在线 | 国产一区二区精品 | 欧美性一区二区 | 亚洲精品一区二区三区蜜桃久 | 久久久精品网站 | 亚洲国产精品久久 | 亚洲中午字幕 | 黄色片com| 久久久久99精品国产片 | 99r在线| 一级黄色片子看看 | 超级碰在线视频 | www.99精品 | 中文字幕一区二区三区四区 | 欧美a在线| 91社区在线高清 | 亚洲一级毛片 | a黄视频 | 午夜激情免费在线观看 | 欧美久久久久久 | 国产成人精品一区二区三区四区 | 亚洲www视频 | 久久国产精品视频观看 | 亚洲精品一二三区 | 伊人网伊人 | 免费看一区二区三区 | h免费在线观看 | 黄色国产精品 | 国产伦精品一区二区三区四区视频 | 国产精品视频播放 | 欧美一区二区三区在线观看 | 欧洲精品视频在线观看 | 在线婷婷| 国产成人精品久久二区二区 | 久久成人免费 | 国产精品久久久久久久粉嫩 | 国产中文字幕一区 | 91麻豆精品国产91久久久久久久久 | 国产三级黄色毛片 | 日韩国产一区二区三区 | 在线看av网址 | 亚洲精品三级 | 国产免费一区二区三区网站免费 | 免费国产黄网站在线观看视频 | 天天操天天碰 | 美女视频黄又黄又免费 | 99精品99 | 欧美一区二区三区在线视频 | 国产精品一区二区三区在线免费观看 | 亚洲精品福利在线 | 欧美一区二区精品 | 日本在线一区 | 香蕉久久一区二区不卡无毒影院 | 北条麻妃一区二区三区中文字幕 | 久久亚洲精品视频 | 亚洲男人的天堂在线 | www亚洲成人 | 久久久国产一区二区三区 | 成人国产精品免费观看 | 久久精品久久久 | 在线国产视频 | 毛片网在线观看 | 国产伦精品一区二区三区四区视频 | 91久久久久久久久 | 91精品国产一区二区三区蜜臀 | 高清一区二区 | 日本免费在线 | 欧美激情小视频 | 欧美性猛xxx | 亚洲精品国产电影 | 亚洲精品a | 亚洲国产精品久久 | 国产一区二区视频在线观看 | 日韩av一区在线 | 亚洲成人aaa | 久久久成| 国产一区二区三区高清 | 天天干天天操天天干 | 欧美国产在线视频 | 日韩在线播放欧美字幕 | 中文字幕亚洲欧美 | 午夜视频在线观看网站 | 亚洲成人一区二区 | 一区二区三区在线不卡 | 日韩一级在线免费观看 | 在线播放亚洲 | 国产精品久久久久久久久久久小说 | 免费黄色小视频 | 成人精品鲁一区一区二区 | 久久草视频 | 欧美一区二区久久久 | 久草新 | 国产日韩91 | 国产精品热 | 日韩视频在线一区二区 | 久久久久久一区二区 | 国产精品亚洲第一 | 视频久久精品 | 欧美一区二区三区免费观看视频 | 九色在线观看 | 欧美精品xx | 国产综合精品一区二区三区 | 99久久综合 | 成人精品网站在线观看 | www夜夜操com| 精品一二三区 | 另类免费视频 | 国产一区二区在线免费 | 欧美自拍网站 | 91色视频在线观看 | 91精品国产综合久久久久久漫画 | 日一区二区 | av免费在线播放 | 伊人网站 | 久久国产精品免费一区二区三区 | 久久久久国产视频 | 在线二区| 国产成人影院 | 美女久久 | 国产成人一区 | 国产免费一区二区三区 | 免费看的黄网站 | 91aiai| 国产一区二区三区91 | 欧美日韩午夜精品 | 日韩无 | 午夜精品久久久久 | 在线精品亚洲欧美日韩国产 | 欧美在线影院 | 久久91 | 亚洲精品电影在线观看 | 欧美视频一级 | 亚洲自拍偷拍欧美 | 免费观看欧美一级 | 日韩中文字幕一区二区 | 人人干操 | 成人福利视频网 | 99精品一区二区三区 | 国产日韩精品一区二区 | 日韩激情二区 | 成年免费a级毛片 | 国产三级在线 | 国产精品美女一区二区三区四区 | 日韩在线免费 | 久久久999精品视频 欧美老妇交乱视频 | 日韩福利视频导航 | 中文字幕第十二页 | 欧美精品在线视频 | 中文字幕在线一区二区三区 | 免费一区二区三区 | 欧美日本在线观看 | 伊人色综合久久久天天蜜桃 | 日韩视频在线一区二区 | 国产精品综合 | 国产精品毛片久久久久久久 | 国产目拍亚洲精品99久久精品 | 日韩福利在线观看 | 亚洲一级毛片 | 成人亚洲 | 久久久久国产 | www.欧美 | 一级毛片免费播放 | 久久伊| 可以免费看的av | 黄色91 | 亚洲一区二区三区免费 | 久久99国产精品久久99果冻传媒 | 免费在线黄 | 色爱av | 午夜在线影院 | 羞羞视频在线观看视频 | 成人激情视频在线 | 91视频在线网址 | 99精品久久久久 | 久久久久久国产免费 | 97爱爱爱 | 国产在线视频一区 | 亚洲精品视频网 | 99影视| 色啪网站 | 亚洲精品一区二区三区蜜桃久 | 欧美高清视频在线观看 | 日韩9999 | a中文在线视频 | 黄视频免费在线 | 91在线看| www.久久| 五月激情综合婷婷 | 欧美色欧美亚洲另类七区 | 亚洲成av人影片在线观看 | 山岸逢花在线观看 | 黄色一级免费观看 | 日日爱999| 日韩欧美a级v片免费播放 | av男人天堂网 | 成人欧美一区二区三区白人 | 精品国产91久久久久久久 | 一区二区三区四区国产 | 亚洲伦理一区 | 久热精品视频 | 亚洲精品久久久久久久久久久 | 欧美电影一区 | 欧美日韩在线一区 | 中文字幕一区二区三区精彩视频 | 资源av| 午夜大片在线观看 | 成人午夜精品久久久久久久蜜臀 | 亚洲视频在线看 | 国产资源在线观看 | 99久久精品免费看国产免费粉嫩 | av网站推荐 | 国产专区在线视频 | 亚洲精品免费视频 | 久草院线| 91精品久久久久久久久久 | 黄色一级网站视频 | 日本天堂在线播放 | 欧美成人一区二区三区片免费 | 日本a在线 | 国产日韩精品一区二区在线观看播放 | 国产成人av一区 | 国产精品久久久久久久久软件 | 亚洲综合在线一区 | 国产麻豆一区二区三区 | 欧美精产国品一二三区 | 欧美成人精品一区二区三区 | 福利视频网址导航 | 欧美成人一区二区三区片免费 | 国产精品福利在线观看 | 羞羞视频在线播放 | 天天天干干干 | 日韩精品一区二区三区 | 午夜精品久久久 | 亚洲aⅴ天堂av在线电影软件 | 国产高清一区二区 | 欧美一级二级片 | 亚洲精品美女久久久 | 日本成人黄色网址 | 欧美日韩黄色一级片 | 久久久久国产精品一区二区三区 | 亚洲欧美中文日韩在线v日本 | 丝袜 亚洲 另类 欧美 综合 | 精品视频在线免费观看 | 久久精品色欧美aⅴ一区二区 | 国产婷婷综合 | 在线观看亚洲视频 | 免费观看日韩一级片 | 91精品国产乱码久久久久久 | 国产91精选 | 欧美视频第一页 | 午夜大片网 | 亚洲欧美激情精品一区二区 | 亚洲精品成人 | 国产精品成人一区二区三区 | 国产精品一区二区不卡 | 91资源在线 | av av在线 | 国内久久精品 | 国产精品免费观看 | 这里只有精品视频 | 日本久久精品 | 欧美五月| 成人在线免费 | 亚洲精品久久久 | 香蕉久久av一区二区三区 | 日本久久精品视频 | 欧美另类久久 | 国产精彩视频 | 91亚洲成人 | 久久久久久艹 | 亚洲国产精品人人爽夜夜爽 | 黄色三及毛片 | 亚洲网在线 | 人人种亚洲| 中文字幕在线免费视频 | 精品一区视频 | 国产精品日本一区二区不卡视频 | 中文字幕高清视频 | 一区欧美| 中文字幕2021 | 欧美日韩一区二区三区在线观看 | 欧美在线小视频 | 亚洲成人免费网站 | 欧美黄色大片网站 | 91社区在线观看 | 香蕉夜色| 一区二区免费在线观看 | 国产91久久精品 | 一区二区三区播放 | 欧美日韩在线精品 | 国产精品久久久久一区二区三区 | 欧美 日韩 中文字幕 | 中文字幕亚洲精品 | 国产成人黄色 | 欧美成人h版在线观看 | 亚洲成人免费 | 亚洲一区二区中文字幕 | 国产精品欧美一区二区三区不卡 | 在线色网 | 国产高清一区二区 | 少妇一区二区三区 | 国产一区二区黑人欧美xxxx | 久久久久久一区 | www日韩| 日韩精品999 | avmans最新导航地址 | 免费国产在线视频 | 三级精品 | 亚洲欧美在线一区二区 | www.久久| 99riav国产精品 | av高清在线看 | 久久亚洲精品中文字幕 | 亚洲欧美综合乱码精品成人网 | 成人免费视频视频在线观看 免费 | 国产乱码精品一区二区三区忘忧草 | 综合激情久久 | 国产综合亚洲精品一区二 | 国产高清在线精品一区二区三区 | 日日骚视频 | 亚洲一区二区三区久久 | 一区二区三区免费在线观看 | 日韩在线观看中文字幕 | 国产成人久久 | 日韩午夜免费视频 | 久久精品国产99国产精品 | 在线亚洲观看 | 亚洲一区久久久 | 亚洲第一页中文字幕 | 日韩视频精品 | 色综合免费 | av在线三级 | 天堂综合网 | 日韩中文在线 | 日本不卡视频 | 久久综合九色综合欧美狠狠 | 久久久久久久 | 91秦先生艺校小琴 | 草久久久 | 黄色一级片免费播放 | 国产欧美精品一区二区三区四区 | 91在线看片| 亚洲成人一区二区三区 | 免费亚洲一区二区 | 亚洲一区中文字幕 | 欧美视频网站 | 亚洲成人精品 | 免费网站看v片在线a | 欧美日韩成人一区 | 欧美久久视频 | 一区二区三区高清 | 男人的天堂久久 | 国产一区二区三区久久久 | 欧美激情a∨在线视频播放 中文字幕网在线 | 99视频在线播放 | 成人免费视频网站在线观看 | 天天射天天 | 伊人av在线| 一区二区三区在线播放 | 欧美精品一区二区三区视频 | 日本少妇bbbb爽爽bbb美 | 欧美日韩成人在线 | 最新日韩欧美 | 色性av| 成视频年人免费看黄网站 | 国产精品久久精品 | 中文字幕观看 | 超碰人人艹 | 中文字幕一区二区三区日韩精品 | 羞羞视频网站免费看 | 情五月| 天天玩天天操天天射 | 一级欧美一级日韩 | 国产成人精品久久二区二区91 | 久久手机免费视频 | 日韩不卡av| 爱操在线 | 天堂成人国产精品一区 | av超碰在线 | 日本不卡一区二区 | 国产91视频一区二区 | 日韩h视频| 黄色一级片视频 | 欧美一级视频在线观看 | 波多野结衣 一区二区三区 精品精品久久 | 日韩成人一区二区 | 亚洲视频一区在线 | 欧美性生活视频 | 日韩av一区二区三区在线观看 | 日本精品一区二区在线观看 | 免费观看的av | 一本一道久久a久久精品综合蜜臀 | 成人免费在线观看网址 | 91麻豆精品国产91久久久更新时间 | 亚洲欧美日韩另类精品一区二区三区 | 亚洲精品成人a8198a | 欧美日韩高清一区 | 国内在线一区 | 中文成人在线 | 日日爱视频 | 少妇黄色一级片 | 国产精品久久久久久久久久妞妞 | 欧美在线一区二区 | 国产日韩视频在线播放 | 91精彩视频在线观看 | 久久免费视频9 | 在线中文字幕av | 蜜桃精品久久久久久久免费影院 | 日本高清无卡码一区二区久久 | 黄色成人在线观看视频 | 日韩精品在线观看一区 | 国产九九精品视频 | 久久精品亚洲一区二区 | 亚洲精品乱码久久久久久麻豆不卡 | 91中文在线| 少妇精品久久久久久久久久 | 青青草视频网站 | 欧美精品一区二区三区视频 | 久久伊人一区二区 | 毛片网站免费在线观看 | 成人h视频 | 国产91福利视频 | yy6080久久伦理一区二区 | 亚洲成人黄色 | 久久精品中文字幕 | 日韩中文字 | 在线播放国产一区二区三区 | av在线日韩 | 99热欧美 | 欧美成人免费一级人片100 | 欧美一区二区视频 | 国产欧美精品一区二区 | 午夜成人免费电影 | 国产精品久久久久久久美男 | 精品国产高清一区二区三区 | 国产噜噜噜噜噜久久久久久久久 | 青娱乐国产视频 | 成人网在线 |