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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

WebSocket之仿QQWeb即时聊天系统(下)

發(fā)布時(shí)間:2023/12/8 windows 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WebSocket之仿QQWeb即时聊天系统(下) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 前言

上篇主要說了準(zhǔn)備階段和要學(xué)的基本知識,當(dāng)然學(xué)的知識還是死的,還是要敲代碼,下篇主要就是用上編學(xué)的知識實(shí)現(xiàn)本次課設(shè)任務(wù)

WebSocket之仿QQWeb即時(shí)聊天系統(tǒng)(上)
WebSocket之仿QQWeb即時(shí)聊天系統(tǒng)(下)
源碼:
鏈接:https://pan.baidu.com/s/1xmCzP0TTLkWqgHnp62K9sA
提取碼:Lin2
CSDN: https://download.csdn.net/download/RongLin02/19762352

本文原創(chuàng),創(chuàng)作不易,轉(zhuǎn)載請注明!!!
本文鏈接
個(gè)人博客:https://ronglin.fun/archives/238
PDF鏈接:見博客網(wǎng)站
CSDN: https://blog.csdn.net/RongLin02/article/details/117984160

白嫖容易,創(chuàng)作不易,希望能讓大家有所收獲。
所有copy到的代碼均是度娘、csdn等可以查到的,我的課設(shè)項(xiàng)目絕大部分都是原創(chuàng),只有一些特定的、不懂的用法是copy
基本上我查詢的資料(例如API等)都會在博客中列出網(wǎng)站,有需要的童鞋可以直接點(diǎn)擊查看
本博客原創(chuàng),轉(zhuǎn)載請注明!

仿QQWeb即時(shí)聊天系統(tǒng)
功能要求:
實(shí)現(xiàn)Web的點(diǎn)對點(diǎn)即時(shí)的文本消息聊天功能。
實(shí)現(xiàn)Web的表情的發(fā)送、接收和顯示功能。
實(shí)現(xiàn)Web的圖片的發(fā)送、接收和顯示功能。
實(shí)現(xiàn)本地消息的存儲,在離線的時(shí)候也能加載和查看歷史消息;
要求使用WebSocket;

2. 服務(wù)器

服務(wù)器的代碼邏輯比較簡單,而且比較固定,所以先說服務(wù)器的代碼邏輯
基本功能和上篇的那個(gè)一樣,主要就是用socket.on和socket.emit,需要注意的是,所有用到這個(gè)兩個(gè)方法的地方都要寫到

io.on('connection', function(socket){ //這里 });

io.on的方法體中,應(yīng)該是表示服務(wù)器和客戶端建立好連接的部分。

2.1. 數(shù)據(jù)庫

2.1.1. 配置代碼

數(shù)據(jù)庫是個(gè)好東西,存儲數(shù)據(jù)可以幫我們省下很多的麻煩,接下來就說用nodejs如何連接數(shù)據(jù)庫
要先安裝模塊

npm install mysql;

JavaScript代碼

var mysql = require('mysql'); var connection = mysql.createConnection({host : 'localhost',user : 'root',password : '123456',database : 'test' });

這些就是配置數(shù)據(jù),先用require導(dǎo)包,然后創(chuàng)建連接,host是地址,端口如果不設(shè)置默認(rèn)是3306,user,password就是登錄數(shù)據(jù)庫的賬號密碼,database就是要用到的數(shù)據(jù)庫,模板性很強(qiáng),就這么用就行了。

數(shù)據(jù)庫建表


數(shù)據(jù)庫名稱為test
字段名稱一共兩個(gè),一個(gè)是id另一個(gè)是password,類型都是varchar類型

2.1.2. 回調(diào)函數(shù)

用到數(shù)據(jù)庫不得不提一個(gè)概念就是回調(diào)函數(shù),因?yàn)镴avaScript訪問數(shù)據(jù)庫是一個(gè)異步的過程,要用回調(diào)函數(shù)完成異步查詢
徹底理解 Node.js 中的回調(diào)(Callback)函數(shù)
這是菜鳥教程有關(guān)回調(diào)函數(shù)的解釋,如果想要熟練運(yùn)用js完成復(fù)雜的功能,一定要好好理解回調(diào)函數(shù)
簡單地說,就是當(dāng)異步調(diào)用時(shí),數(shù)據(jù)還沒返回給調(diào)用者,但是調(diào)用者直接繼續(xù)執(zhí)行了。
舉個(gè)例子,假設(shè)有個(gè)getValue()方法,它因?yàn)樾屎艿?#xff0c;需要10s才能將結(jié)果返回給result,在js中,這樣寫就錯(cuò)了

var value; getValue(function(result){value = result;console.log(value); //① }); console.log(value); //②

在①號的輸出是有值的,而在②的輸出就是一個(gè)空。原因是在執(zhí)行完getValue方法之后,它會立即執(zhí)行②的代碼,但是這時(shí)候value的值還沒得到,而在function內(nèi)部,value的值已經(jīng)得到了,輸出出來的就是有結(jié)果的。
這樣就需要一個(gè)回調(diào)函數(shù)callback,來告訴調(diào)用者:“我執(zhí)行完了,我把結(jié)果返回給你,你可以繼續(xù)執(zhí)行需要部分了”所以案例代碼要想用回調(diào)函數(shù)可以這樣寫

function getValuePlus(callback){getValue(function(result){callback(result); }); } //這樣調(diào)用 getValuePlus(result =>{console.log(result) })

由于時(shí)間緊迫,我并沒深入的去學(xué)習(xí)回調(diào)函數(shù)的機(jī)制,只是簡單的理解了一下,如有問題,請多多指點(diǎn)。

2.1.3. 數(shù)據(jù)庫代碼

說了這么多,其實(shí)就是數(shù)據(jù)庫的查詢過程是一個(gè)異步過程,調(diào)用者想要獲取結(jié)果就得等數(shù)據(jù)返回。貼上代碼

//從數(shù)據(jù)庫中查詢 function select_user(data,callback){//連接數(shù)據(jù)庫開始查詢let sql = 'SELECT * FROM user where id = \''+data.username+'\';';connection.query(sql,function (err, result) {if(err){console.log('[SELECT ERROR] - ',err.message);callback(null)}//用回調(diào)函數(shù)告訴調(diào)用者執(zhí)行完了callback(result);}); } //插入數(shù)據(jù)庫 function insert_user(data){let sql ='INSERT INTO user VALUES (\''+data.username+'\',\''+data.password+'\');';connection.query(sql,(err,result)=>{if(err){console.log('[INSERT ERROR] - ',err.message);return;};}); } //調(diào)用者 //從數(shù)據(jù)庫中尋找 select_user(data,result=>{if(result.length){if(result[0].password != data.password){console.log('loginFail','密碼錯(cuò)誤!');return ;}}else{insert_user(data);}});

2.2. 常用方法

這個(gè)部分主要是根據(jù)需求,設(shè)計(jì)常用方法。

2.2.1. 主要邏輯方法

然后就是設(shè)計(jì)常用的方法了。
根據(jù)需求,要有收發(fā)文本數(shù)據(jù)的的方法,還要有收發(fā)圖片的方法,驗(yàn)證登陸的方法,離線方法
基本的都是用socket.on和socket.emit實(shí)現(xiàn)

// 用戶斷開連接的功能 socket.on('disconnect', () => {}); //服務(wù)器向所有客戶端廣播的方法 io.emit('key', value)

2.2.2. 服務(wù)器和特定的客戶端交互

因?yàn)楹孟裰粫毫?#xff0c;但是如果和特定的客戶端交互應(yīng)該 怎么辦呢
先上我查詢的資料:
node如何使用socket.io向指定客戶端發(fā)送消息
socket.io發(fā)送給指定的客戶端
分享一個(gè)大佬的成品仿微信聊天室

當(dāng)客戶端成功連接服務(wù)器的時(shí)候,我會給它添加一個(gè)username的屬性。
服務(wù)器對于每一個(gè)已經(jīng)連接的客戶端,會用存儲在io.sockets.sockets數(shù)組里,然后根據(jù)我設(shè)置的username的屬性去找到這個(gè)客戶端
然后用socket.to(toSocket)方法單獨(dú)給特定的客戶端發(fā)消息。

//給客戶端添加一個(gè)屬性作為識別標(biāo)記 socket.username = data.username;socket.on('sendMessage',data=>{// console.log(data.msg);// console.log(data.toName);// console.log(data.name);var toSocket = null//console.log(io.sockets.sockets)for (const key in io.sockets.sockets) {if (io.sockets.sockets[key].username == data.toName) {toSocket = keybreak}}if (toSocket) {// 發(fā)送給指定用戶socket.to(toSocket).emit('receiveMessage', {msg:data.msg,fromName:data.name,time : data.time,name:data.toName})} });

2.2.3. nodejs讀取本地文件

在前端,一般來說,JavaScript讀取文件相當(dāng)麻煩而且還有限制。但是在服務(wù)器中,nodejs讀取文件已經(jīng)比較成熟了。
查詢的資料:
NodeJS 文件操作 —— fs 基本使用
appendFile函數(shù)的基本用法
安裝插件

npm install body-parser

貼代碼

const url = require('url'); const fs = require('fs'); app.use(express.json()) app.use(express.urlencoded({ extended: false }))let url = './history/'+data.name+'To'+data.toName+'.txt';fs.appendFile(url,'\n'+JSON.stringify(data), err => {if (err) {console.log(err)}});if(data.toName != data.name){let t_url = './history/'+data.toName+'To'+data.name+'.txt';fs.appendFile(t_url,'\n'+JSON.stringify(data), err => {if (err) {console.log(err)}});}

主要是一個(gè)方法,就是appendFile()方法,它可以將新的內(nèi)容追加到已有的文件中,如果文件不存在,則會創(chuàng)建一個(gè)新的文件。
fs.appendFile(文件名,數(shù)據(jù),編碼,回調(diào)函數(shù)(err));

3. 客戶端

設(shè)計(jì)重點(diǎn)來了,接下來是對我的成果的各個(gè)部分的解釋。
這部分主要是針對各個(gè)功能部分對于HTML、CSS、JavaScript代碼的講解,以及一些好用但是不好搜的用法
主要界面展示
界面1:

界面2:

3.1. 界面設(shè)計(jì)

3.1.1. 界面1

對于第一個(gè)界面是從網(wǎng)上參考的樣式表,實(shí)在抱歉,我當(dāng)時(shí)沒保存下來網(wǎng)站,如有侵權(quán)聯(lián)系我刪除,本博客僅用于學(xué)習(xí),完成課程設(shè)計(jì)。
這個(gè)主要是有兩個(gè)CSS屬性要提一下

/* 漸變函數(shù) 從右到左 */ background-image: linear-gradient(to right, #fbc2eb, #a6c1ee); /*定義 2D 轉(zhuǎn)換*/ transform: translate(-50%, -50%);

一個(gè)是漸變函數(shù),一個(gè)是移動(dòng)元素的,將元素塊向上下左右移動(dòng),還是很使用的。

3.1.2. 界面切換

然后切換界面有兩個(gè)方法
第一個(gè)方法就是設(shè)置兩個(gè)塊的display屬性
第一個(gè)界面的display屬性設(shè)置為none,然后把第二個(gè)界面的display屬性設(shè)置為inline
第二個(gè)方法就是用Jquery語句,我就是用的這個(gè)

//隱藏登錄窗口 $('.container').hide(); // 顯示聊天窗口 $('.chat_container').fadeIn();

括號里的是要操作的div的類名,這個(gè)元素選擇器的規(guī)則和CSS是一樣的,$('#chat')就是選中id為chat的元素

3.1.3. 界面2

第二個(gè)界面盒裝設(shè)計(jì)圖

雖然丑了點(diǎn),但是作為草圖足夠了,我的界面2也是這樣設(shè)計(jì)的。
左側(cè)是用戶列表,中間是聊天信息,然后是功能欄,下方是一個(gè)可編輯的div,最下方是一個(gè)發(fā)送按鈕。
可編輯的div的屬性是

<div class="text_view" contenteditable="true" tabindex="0" id="_text_view"></div>

contenteditable是控制可編輯的,tabindex是控制tab鍵次序。

3.2. 邏輯設(shè)計(jì)

在HTML和CSS中將款式設(shè)計(jì)好之后,就該在js文件中設(shè)計(jì)動(dòng)態(tài)邏輯了。
這部分是本次課設(shè)的重難點(diǎn) 也是查詢資料時(shí)間最長的部分

3.2.1. 登錄界面

首先是注冊/登錄按鈕,這個(gè)btn就是將用戶填寫的數(shù)據(jù)提交給服務(wù)器,服務(wù)器是這樣判斷的邏輯,如果用戶名存在就對比密碼,密碼正確,返回登錄成功;如果密碼錯(cuò)誤,返回密碼錯(cuò)誤提示;如果用戶名不存在就直接創(chuàng)建一個(gè)新用戶。
返回登錄成功之后,界面切換到界面2

界面2要說的點(diǎn)太多了,綜合性很強(qiáng),就簡單的闡述一下邏輯吧

3.2.2. 用戶列表

這個(gè)對應(yīng)的是最左側(cè)那一欄,要完成的邏輯是
文字居中,可點(diǎn)擊,鼠標(biāo)為點(diǎn)擊樣式
點(diǎn)擊之后
背景顏色改變同時(shí)其他用戶塊背景顏色復(fù)原,標(biāo)題框名稱改為用戶名
還有一個(gè)比較麻煩的部分就是聊天內(nèi)容的切換,點(diǎn)擊左側(cè)不同的用戶,要切換不同的聊天內(nèi)容
我的解決方案是,給每一個(gè)用戶一個(gè)聊天內(nèi)容塊,點(diǎn)擊的時(shí)候就顯示它的聊天內(nèi)容塊,隱藏其他內(nèi)容塊。

還有一個(gè)就是用戶列表的更新,當(dāng)有用戶登陸或離線的時(shí)候,要能自動(dòng)刷新用戶列表。
這個(gè)功能我是用服務(wù)器,服務(wù)器給客戶端一個(gè)消息,刷新用戶列表,同時(shí)把當(dāng)前在線的人名單傳給客戶端
當(dāng)前用戶列表和傳回來的名單經(jīng)行對比
有一個(gè)新用戶的時(shí)候,就增加一個(gè)塊,同時(shí)添加點(diǎn)擊事件

var cell = document.createElement('div');//創(chuàng)建元素 cell.textContent = cilents[i];//設(shè)置div的文本內(nèi)容 cell.style=userCellStyle; //設(shè)置css樣式 cell.classList.add('userCell');//添加類名 cell.id='userCell_'+cilents[i];//設(shè)置Id名 document.getElementById('list_user').appendChild(cell); //將這個(gè)塊添加到父塊中 $('.'+cell.className).on("click",function(){.......}); //添加點(diǎn)擊事件

當(dāng)有用戶離線的話,就刪除它的塊

let t_cell = document.getElementById(cells[i].id); t_cell.parentNode.removeChild(t_cell);

3.2.3. 發(fā)送按鈕

發(fā)送功能就算是比較重要的功能了,它的邏輯是將當(dāng)前的文本框(可編輯div)下的文本數(shù)據(jù)發(fā)送給服務(wù)器,然后清空文本框,再將數(shù)據(jù)添加到聊天內(nèi)容塊中,聊天內(nèi)容塊中要添加兩個(gè)小div,一個(gè)是標(biāo)題顯示發(fā)送人和時(shí)間,另一個(gè)就是要發(fā)送的數(shù)據(jù)了。
數(shù)據(jù)格式是這樣的

var data = {msg: myselfDiv.innerHTML,name: _cilent.username,time: formatDateTime(new Date()),toName: document.getElementById('name_user').textContent }

然后聊天內(nèi)容塊也要監(jiān)聽服務(wù)器的消息,如果有消息了就顯示到聊天內(nèi)容塊中
然后有一個(gè)點(diǎn)要注意,就是讓滾動(dòng)條保持在最下方
讓DIV的滾動(dòng)條自動(dòng)滾動(dòng)到最底部的3種方法
這里博客給了三種方法,慚愧的是,三個(gè)方法我都沒成功,后來參考了一個(gè)大佬的代碼,才解決

$('#'+myChatId).children(':last').get(0).scrollIntoView(false)

3.2.4. emoji

核心功能之一,用的大佬的模板,但是用的過程中遠(yuǎn)沒有想的那么簡單。
先上學(xué)習(xí)資料:jQuery-emoji
我用的就是這個(gè)大佬的模板,調(diào)用起來有點(diǎn)麻煩,雖然是一個(gè)中文官方API,但是,用起來還是有點(diǎn)麻煩,簡單說一下調(diào)用過程吧
首先是先下載大佬的安裝包,然后就是配置一下參數(shù),然后可能還需要再修改一下大佬代碼
導(dǎo)包一共需要導(dǎo)入四個(gè)js文件和兩個(gè)css文件

<link type="text/css" href="./css/emoji/jquery.mCustomScrollbar.min.css" rel="stylesheet"> <link type="text/css" href="./css/emoji/jquery.emoji.css" rel="stylesheet"><script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.js"></script> <script src="./js/emoji/jquery.mousewheel-3.0.6.min.js"></script> <script src="./js/emoji/jquery.mCustomScrollbar.min.js"></script> <script src="./js/emoji/jquery.emoji.js"></script>

我把大佬的文件都放在了/js/emoji/文件夾下,然后直接導(dǎo)入
然后還要寫一個(gè)js文件用來配置和調(diào)用emoji

var options = {button : document.getElementById('btn_emoji'),showTab: true,animation: 'fade',position:'bottomRight',icons: [{name: "貼吧表情",path: "./images/tieba/",maxNum: 10,file: ".png",placeholder: ":{alias}:",alias: {1: "hehe",2: "haha",3: "tushe",},title: {1: "呵呵",2: "哈哈",3: "吐舌",}},{name: "QQ高清",path: "./images/qq/",maxNum: 90,excludeNums: [41, 45, 54],file: ".png",placeholder: "#qq_{alias}#"}, {name: "emoji高清",path: "./images/emoji/",maxNum: 84,file: ".png",placeholder: "#emoji_{alias}#"}] }$(".text_view").emoji(options);

簡單的解釋一下,主要寫配置信息。
我們主要寫的有這幾個(gè)配置信息
button:用來顯示和隱藏表情面板的按鈕
path:emoji圖片存儲的路徑
position:emoji面板的顯示位置,相對于按鈕的位置
maxNum:同類emoji的數(shù)量
然后最后一行$(".text_view").emoji(options);用來設(shè)置哪些塊需要顯示emoji
然后如果顯示不出來,可能還要去修改css文件中的display的屬性,改成inline或者block之類的,可能還有修改jquery.emoji.js文件中的部分屬性.
大佬的代碼寫的真好,我沒怎么看明白,但是我大概看了一下,好像是做了一個(gè)映射,點(diǎn)擊之后,會把圖片添加到塊中.

所以,處理信息就方便了,每一條信息中的一個(gè)emoji顯示在代碼中其實(shí)就是img標(biāo)簽,我將這條信息用_text_view.innerHTML把其中的HTML代碼提取出來,然后連同標(biāo)簽文字直接發(fā)給服務(wù)器,因?yàn)槭荋TML,然后emoji的顯示是用img標(biāo)簽然后用src鏈接顯示圖片的,因?yàn)槊總€(gè)客戶端的emoji的位置都是固定的,所以只傳輸HTML代碼,放在另一個(gè)客戶端中也能顯示.

大佬寫的emoji模塊還是比較完善的,調(diào)用起來也比較簡單.

3.2.5. 上傳圖片

圖片不像emoji,emoji可以事先存儲在客戶端的文件夾中,位置可以固定,直接用HTML鏈接文件就行了.
圖片在用戶的電腦上的位置是隨機(jī)的,樣子也是隨機(jī)的,有點(diǎn)犯難.
老規(guī)矩,先上查詢的資料:
FIleReader
JS讀取本地文件
FileReader - Web API 接口參考 | MDN
主要用到的就是一個(gè)叫FileReader的對象,對應(yīng)到HTML中是input標(biāo)簽type是file的.

var imageFile = document.getElementById('_picture').files[0]; var fr = new window.FileReader() fr.readAsDataURL(imageFile); fr.onload = function () {console.log(fr.result); }

輸出數(shù)據(jù)是一大大大大大段字符,這是用的base64編碼,瀏覽器自己會識別的,如果想要這個(gè)代碼顯示圖片

div.innerHTML ='<img src=\"'+ fr.result +'\">';

就是用img的src屬性,直接將那段base64編碼賦給src屬性就可以顯示了.
圖片的顯示也搞定了.

file標(biāo)簽的樣式
有關(guān)于<input type="file">這個(gè)標(biāo)簽倒是要注意一下樣式,原版樣式很丑,而且看了很多資料,網(wǎng)絡(luò)上也沒有啥很好看的樣式,不過查到了一個(gè)思路就是用一個(gè)button用來顯示,然后點(diǎn)擊這個(gè)button,然后觸發(fā)file,不過用JavaScript設(shè)置click方法,不知道為啥沒顯示,也試過用了Jquery的().on注冊事件也不行.還是我太菜了,對js的語法不太熟,最終只能放棄.
然后我又剛好查到可以用一個(gè)label標(biāo)簽和一個(gè)元素綁定,然后點(diǎn)擊label標(biāo)簽就相當(dāng)于點(diǎn)擊那個(gè)綁定的元素,發(fā)現(xiàn)了新世界,用法如下

<label for="_picture" class="picture"></label> <input type="file" id="_picture" style="display:none;" multiple accept="image/*" onchange="sendImage()">

這樣input type="file"就不顯示了,只顯示label,這樣就只需要修改label的樣式就行了,太方便了.

3.2.6. 歷史記錄

這部分是最難的部分,因?yàn)樗獙?shí)現(xiàn)本地消息的存儲,然后瀏覽器本身對于文件的操作有很有限.太頭禿了
先上資料:
在node.js下淺談前端下載文件的方法
js發(fā)送get 、post請求的方法簡介
jQuery - AJAX get() 和 post() 方法
nodejs:下載文件到服務(wù)器或客戶端
HTML5 FileReader 讀取txt文件
js實(shí)現(xiàn)base64轉(zhuǎn)換
js正則表達(dá)式獲取字符串中多個(gè)大括號{}中的內(nèi)容

我是這樣實(shí)現(xiàn)的,就是客戶端從服務(wù)器中下載聊天記錄.txt,然后用戶自己選擇這個(gè)文件,然后js把文件內(nèi)容讀出來,把記錄顯示到聊天框中.
服務(wù)器提供下載服務(wù):

const url = require('url'); const fs = require('fs');app.get('/download', function(req, res) {let url = 'history/'+ req.query.name + 'To' + req.query.toName + '.txt';res.download(__dirname+'\\'+url); });

先導(dǎo)包,我的聊天記錄放在根目錄下的history文件夾下,數(shù)據(jù)保存的格式是xxxToxxx.txt,內(nèi)容是JSON格式數(shù)據(jù).
實(shí)現(xiàn)的功能就是讓nodejs處理客戶端的get請求,然后把文件傳回去,用req.query.屬性名來獲取屬性值,然后返回正確的文件給客戶端

然后就是客戶端怎么向服務(wù)器發(fā)出post/get請求
第一種方法就是比較簡單的就是用js創(chuàng)建一個(gè)虛擬form,然后click,就會發(fā)出一個(gè)請求
第二個(gè)方法是用Jquery的get() 和 post()方法,用法很簡單

$.get(URL,callback); $.post(URL,data,callback);

第三個(gè)方法就是,上面第一個(gè)資料的用iframe提交,而且還沒有閃現(xiàn),大佬請收下我的膝蓋

//本方法copy自網(wǎng)絡(luò) function downloadByIframe(url){var iframe = document.getElementById("myIframe");if(iframe){iframe.src = url;}else{iframe = document.createElement("iframe");iframe.style.display = "none";iframe.src = url;iframe.id = "myIframe";document.body.appendChild(iframe);} }

代碼復(fù)制自
在node.js下淺談前端下載文件的方法
如有侵權(quán)請聯(lián)系我刪除!

然后就是本地讀取文件

var history = document.getElementById('_history').files[0]; var fr = new window.FileReader() fr.readAsDataURL(history);fr.onload = function () {//編碼base64 Base64.encode//解碼base64var texts = Base64.decode(fr.result).match(/{(.*?)}/g);//console.log(texts);var t_meg = JSON.parse(texts[0]);console.log(t_meg);if(t_meg.name != _cilent.username && t_meg.toName != _cilent.username){alert('這不是你的聊天記錄!!!');return ;}}

簡單的說一下,還是用<input type="file">這個(gè)標(biāo)簽,然后js中用FileReader讀取,但是有一個(gè)問題就是讀取的文件數(shù)據(jù)是base64編碼之后的,我們需要先解碼,方法是參考js實(shí)現(xiàn)base64轉(zhuǎn)換的.
先安裝base64包

<script src="https://cdn.jsdelivr.net/npm/js-base64@3.6.1/base64.min.js"></script>

然后,就可以用了,兩個(gè)方法

Base64.decode() //解碼base64 Base64.encode() //編碼base64

解碼之后數(shù)據(jù)是很多很多的JSON數(shù)據(jù),我們還要用正則表達(dá)式將JSON數(shù)據(jù)提取出來。
就是匹配{}中的數(shù)據(jù)。用的正則表達(dá)式是/{(.*?)}/g,然后將提取的JSON串轉(zhuǎn)化成js對象JSON.parse()
然后數(shù)據(jù)就讀出來。

總結(jié)

這次課設(shè)收獲了太多的東西,了解了nodejs、socket.io等技術(shù),熟悉了JavaScript的語法,查詢了太多了資料,收獲滿滿。
=w=

總結(jié)

以上是生活随笔為你收集整理的WebSocket之仿QQWeb即时聊天系统(下)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

久久精品国亚洲 | 天天综合成人 | 91香蕉视频黄| 精品久久美女 | 中文字幕在线字幕中文 | 精品久久久久久亚洲综合网站 | 久久中文字幕视频 | 国产一级视频免费看 | 最新国产中文字幕 | 免费男女羞羞的视频网站中文字幕 | 亚洲不卡123 | 激情久久综合网 | 日本精品va在线观看 | 久久草| 亚洲国产伊人 | 日韩一区二区三区不卡 | 国产成人精品网站 | 亚洲欧美日韩一区二区三区在线观看 | 天天操 夜夜操 | 精品国产一区二区在线 | 国产成人99久久亚洲综合精品 | 久久99久久久久久 | 一区二区 不卡 | 日日躁夜夜躁xxxxaaaa | a级免费观看| 最近中文字幕视频完整版 | 亚洲精品tv久久久久久久久久 | 在线最新av| 久久精选 | 黄色亚洲 | 精品久久免费看 | 国产亚洲精品久久19p | 黄色大片视频网站 | 精品久久一区二区三区 | 欧美三级在线播放 | 97成人在线免费视频 | 天天干,天天射,天天操,天天摸 | 午夜性盈盈 | 午夜影视一区 | 国产女教师精品久久av | 久热这里有精品 | 中文字幕在线一二 | 9999在线观看 | 91毛片在线 | 国产精品不卡在线 | 婷婷丁香在线视频 | 国产色婷婷 | 视频91在线 | 成人黄色在线 | 日韩mv欧美mv国产精品 | www色| 国产黄在线播放 | 日b视频国产 | 在线中文字幕播放 | 黄色特级一级片 | 久久五月天色综合 | 日韩久久久 | 欧美肥妇free | 婷婷久久一区 | 欧美三级在线播放 | 亚洲精品免费看 | 欧美精品一区在线 | 欧美专区日韩专区 | 国产在线成人 | 国产a级免费 | 午夜色婷婷 | 午夜免费电影院 | 国内精品毛片 | 国产日产精品一区二区三区四区 | 精品成人免费 | 久久er99热精品一区二区 | 久久国际影院 | 成人四虎影院 | 亚洲国产电影在线观看 | 久久久免费高清视频 | 久久午夜剧场 | 99久久久久成人国产免费 | 国产一区二区三精品久久久无广告 | 欧美地下肉体性派对 | 国产91精品一区二区绿帽 | 久久精品99国产 | av网站在线观看免费 | 一本一本久久a久久精品综合小说 | 天天干天天干天天干天天干天天干天天干 | 成人久久免费视频 | 蜜臀aⅴ国产精品久久久国产 | 免费在线观看日韩 | 五月激情电影 | 中文字幕在线人 | 国产xx视频 | 久久国产香蕉视频 | 黄色免费观看网址 | 成人a免费 | 成人手机在线视频 | 黄污网站在线 | 欧美一级艳片视频免费观看 | 国产美女网站视频 | 亚洲电影影音先锋 | 国产正在播放 | 色亚洲网 | 丁香婷婷久久久综合精品国产 | 一本之道乱码区 | av福利在线播放 | 日韩在线精品一区 | 国产91国语对白在线 | 国产精品1区 | 一区二区三区动漫 | 日韩美女黄色片 | 国产精品毛片久久久久久久 | www.777奇米| 91天天操 | 色视频网址 | 色吊丝在线永久观看最新版本 | 超碰成人免费电影 | 激情一区二区三区欧美 | 中文字幕免费看 | 免费在线观看污网站 | 中文字幕第一页av | 国产美女主播精品一区二区三区 | 欧美精品一区二区三区四区在线 | 亚洲一区不卡视频 | 日韩欧美一区二区在线播放 | 色视频在线观看免费 | 亚洲成人高清在线 | 在线观看日韩中文字幕 | 在线视频 影院 | 91精品久久久久久综合乱菊 | 97超级碰碰 | 中文字幕乱在线伦视频中文字幕乱码在线 | 91精品成人 | 国产精品麻豆三级一区视频 | 中文字幕永久免费 | 在线观看免费国产小视频 | 91精品国产麻豆国产自产影视 | 午夜婷婷综合 | 亚洲综合色视频 | 亚洲综合色丁香婷婷六月图片 | 久久大视频 | 国产区欧美| av观看久久久 | 夜添久久精品亚洲国产精品 | 在线观看视频你懂 | 久久精视频 | 不卡av在线播放 | 久久久国产日韩 | 久久狠狠亚洲综合 | 麻豆传媒在线免费看 | 亚洲精品视频在线观看视频 | 97爱| 亚洲欧洲一级 | 91片黄在线观看 | 亚洲天堂精品视频在线观看 | 美女国产在线 | 免费av网站在线看 | 久草久草久草久草 | 激情av资源 | 日韩电影一区二区在线观看 | 五月天亚洲综合 | 91视频在线免费下载 | 国产999在线| 久久久久久久久亚洲精品 | 精品国产伦一区二区三区观看说明 | 在线观看午夜av | 男女精品久久 | 精品国产一区二区三区不卡 | 99综合视频 | 午夜视频在线网站 | 色综合久久99 | av网址最新 | av线上看 | 久久综合成人网 | 91视频在线免费下载 | 99草视频 | 婷婷色六月天 | 久久99视频免费观看 | 美女黄频在线观看 | 91人人爱 | 三级视频日韩 | 久久久久久久久久伊人 | 九九热免费在线视频 | 久久久免费看片 | 99在线视频免费观看 | 最近日本字幕mv免费观看在线 | 免费a网| 亚洲精品乱码久久久久久9色 | 午夜精品一区二区国产 | 国产日本亚洲 | 日操操 | 免费视频成人 | 天天操夜操视频 | 日批在线观看 | 中文字幕视频网站 | 99精品国产一区二区三区麻豆 | 丰满少妇在线观看网站 | 麻花天美星空视频 | 97超碰总站 | 成人av免费在线观看 | av在线网站免费观看 | 成人免费共享视频 | 亚洲综合色婷婷 | 色婷丁香 | 久久丝袜视频 | 日韩美女高潮 | 韩国av永久免费 | 欧美一区二区三区在线看 | 欧美精品久久久久久久久久丰满 | 91重口视频 | 国产人成精品一区二区三 | 亚洲成av人电影 | 日日麻批40分钟视频免费观看 | 日韩在线视频线视频免费网站 | 91精品看片 | av网在线观看 | 成人在线观看日韩 | 成人黄色av网站 | 日韩高清激情 | 亚洲欧洲国产视频 | 久久不见久久见免费影院 | 亚洲国产成人在线播放 | 亚洲一区二区视频在线播放 | 99中文在线| 天天操夜夜干 | 亚洲欧洲精品在线 | 综合婷婷久久 | 四虎成人网 | 一区二区三区国 | 九九交易行官网 | 亚洲午夜av久久乱码 | 激情丁香久久 | 精品国产伦一区二区三区免费 | 91视频在线播放视频 | 国产999视频| 99爱国产精品 | 岛国片在线| 人人澡超碰碰97碰碰碰软件 | 伊人婷婷激情 | 开心激情网五月天 | 亚洲欧洲一区二区在线观看 | 日韩激情视频 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 久久视频一区二区 | 天天干天天插伊人网 | 在线看一级片 | 久久久免费播放 | 国产91欧美 | 亚洲成aⅴ人在线观看 | 高清有码中文字幕 | 国内综合精品午夜久久资源 | 久久理论片| 久久99精品久久久久久清纯直播 | 美女天天操 | 91女人18片女毛片60分钟 | 国产精品影音先锋 | 一区二区三区精品久久久 | 欧美 日韩 国产 成人 在线 | 国产精品久久人 | 中文在线中文a | 亚洲精品18日本一区app | 97免费在线观看视频 | 国产资源在线免费观看 | 日韩中文字幕91 | 国产精品精品久久久久久 | 黄色av电影网| 欧美成人性网 | 亚洲成av人片在线观看 | 亚洲国产精品久久久久 | 国产精品丝袜在线 | 国产精华国产精品 | 99久久精| 综合天天网 | 成人小视频免费在线观看 | 免费在线观看黄 | 欧美精品v国产精品v日韩精品 | 丁香av | 人人爱爱人人 | av一级网站 | 亚洲国产日韩一区 | 久久99九九99精品 | 亚洲伦理一区二区 | 国产黄色精品在线 | 久久久久久国产精品999 | 日韩视频在线不卡 | av在线播放免费 | 日本在线视频一区二区三区 | 久久久久亚洲精品 | 国产在线观看a | 国产午夜三级一区二区三 | 亚洲精选在线观看 | 最近免费中文字幕大全高清10 | 午夜av网站 | 久久视奸 | www色,com | 免费热情视频 | 久久免费视频网 | 久久久久国产一区二区 | 9ⅰ精品久久久久久久久中文字幕 | 91精品一 | 00av视频 | 午夜视频亚洲 | 97在线观看免费高清 | 国产成人在线观看免费 | 国产91精品一区二区麻豆亚洲 | 亚洲三级在线 | 亚洲 av网站 | 国产日韩在线观看一区 | 99这里精品 | 91传媒免费观看 | 操操综合 | 成人avav| 国产精品大片在线观看 | 人人插人人做 | 激情在线免费视频 | 97人人模人人爽人人少妇 | 日韩免费在线看 | 天天干国产| 日韩免费三级 | 久久久久在线 | 欧美久久久影院 | 日韩一区二区三区不卡 | 中文字幕一区二区在线播放 | 久久成视频 | 欧美色操 | 国产精品成人久久 | 日女人电影 | 超碰日韩 | 日韩城人在线 | 国产成人一级电影 | 国产视频一区在线 | 日韩精品无码一区二区三区 | 亚洲免费永久精品国产 | 操操碰| 国产一级二级三级视频 | 最新av观看 | 三级av在线免费观看 | 国产成人精品一区二区三区在线观看 | 色综合婷婷久久 | 91av视频| 蜜臀久久99静品久久久久久 | 欧美亚洲精品在线观看 | 在线免费观看羞羞视频 | 国产三级精品在线 | 色播99 | 狠狠躁日日躁 | av一级片网站 | 国产高清一区二区 | 中文字幕免费 | 日韩夜夜爽 | 一级一级一片免费 | 成人av电影在线播放 | 久久99久久久久久 | 99久久久久久久久 | 91网站观看 | 91人人网 | 国产色在线,com | 国产在线一区二区三区播放 | 97精品久久人人爽人人爽 | 成人在线播放免费观看 | 操夜夜操 | 国产精品v欧美精品 | 国产经典av | 日本性高潮视频 | 欧美日韩激情视频8区 | 国产一级淫片在线观看 | 丁香激情五月婷婷 | 婷婷综合在线 | 日日操日日操 | 人人爱人人舔 | 国产 视频 高清 免费 | 91高清完整版在线观看 | 狠狠色丁香久久婷婷综合五月 | www.国产视频| 国产糖心vlog在线观看 | 国产精品久久久久久久久久久久久 | 色永久免费视频 | 日韩免费看视频 | 99精品在线 | 成人动漫一区二区三区 | 亚洲免费婷婷 | 日韩电影在线一区二区 | 91精品视频在线观看免费 | 二区三区在线视频 | 亚洲无吗av | 激情网婷婷| 国产麻豆精品在线观看 | 69视频国产 | 婷婷在线看| 久久精品黄 | 九色porny真实丨国产18 | 亚洲国产丝袜在线观看 | 久久这里只有精品23 | 日韩一级理论片 | 国产精品99久久久精品 | 国产精品一区久久久久 | 亚洲日本国产精品 | 91禁在线观看 | 69视频网站| 久久久精品网站 | 久久久久久欧美二区电影网 | 欧美韩国日本在线观看 | 激情黄色一级片 | 国产欧美精品xxxx另类 | 天堂av网址| 免费高清无人区完整版 | 午夜电影久久久 | 韩日三级在线 | 欧美日韩高清一区 | 99视频在线看 | 91成人精品国产刺激国语对白 | 中文字幕电影高清在线观看 | 亚洲综合涩 | 亚洲精品自拍视频在线观看 | 久草在线中文视频 | 日韩欧美综合在线视频 | 国产精品18久久久久久久久 | 免费又黄又爽的视频 | 精品播放 | 黄色av网站在线免费观看 | 亚洲欧美国产精品18p | 麻豆一二三精选视频 | 国产成人一二片 | 午夜手机电影 | 三上悠亚一区二区在线观看 | 二区三区视频 | 草久久久久 | 亚洲国产成人精品久久 | 免费人成网ww44kk44 | 欧美二区三区91 | 狠狠88综合久久久久综合网 | 激情在线网址 | 成人 国产 在线 | 欧美久久久久久久久久 | 中文资源在线官网 | 亚洲aaa级 | 久久艹在线 | 久久久久免费精品 | 婷婷免费在线视频 | 中文字幕乱在线伦视频中文字幕乱码在线 | 日日操日日干 | 欧美日韩中文国产一区发布 | 国产第页 | 日韩视频中文字幕在线观看 | 国产 日韩 在线 亚洲 字幕 中文 | 国产一级片一区二区三区 | 免费看黄网站在线 | 99精品免费在线观看 | 超碰国产人人 | 波多野结衣一区二区三区中文字幕 | 日韩伦理一区二区三区av在线 | 日韩在线视频免费看 | av电影在线免费观看 | 成人在线视频免费看 | 91网在线 | 国产黄色精品 | 久久久久久久久久亚洲精品 | 韩国三级一区 | 中文日韩在线 | 91精彩在线视频 | 日韩黄色在线 | 一本一道久久a久久综合蜜桃 | 久久国产精品视频观看 | 日韩欧美在线影院 | 成年人黄色免费看 | 黄色av电影免费观看 | 中文字幕一区在线 | 99久久精品午夜一区二区小说 | 国产一区视频免费在线观看 | 欧美另类色图 | 久久视影 | 在线看国产视频 | 欧美日一级片 | 99亚洲视频| 天天干天天插 | 久久国产综合视频 | 超碰在线公开免费 | 日韩免费观看视频 | 999久久久免费精品国产 | 免费麻豆 | 91综合视频在线观看 | 久久久久这里只有精品 | 在线有码中文字幕 | 欧美一级网站 | 国产色区 | 国产高清在线视频 | 欧美性做爰猛烈叫床潮 | 国内久久精品视频 | 久久精品视频在线观看免费 | 视频国产精品 | 婷色在线| 国产97av | 亚洲国产中文字幕在线 | 亚洲欧洲久久久 | 久久国产精品视频观看 | 亚州日韩中文字幕 | 黄色国产在线 | 欧美高清视频不卡网 | 射综合网 | 久久免费视频一区 | 免费人成网 | 国产一区二区精品久久 | 国产精品久久久久婷婷二区次 | 在线成人国产 | 黄色软件大全网站 | 亚洲视频www| 久久久国产一区 | 免费看片成年人 | 久久国产精品99久久人人澡 | 精品久久久久久国产91 | 亚洲精品高清在线 | 久久久综合色 | 蜜桃av综合网| 96精品在线 | 天天摸天天舔天天操 | 国产又粗又长又硬免费视频 | 爱av在线网 | 欧美国产一区在线 | a视频在线 | 91久色蝌蚪 | 天天射天天射 | 人人爽人人爽人人片av免 | 特级毛片在线 | 天堂v中文| 午夜.dj高清免费观看视频 | 国内精品久久久久影院日本资源 | 波多野结衣电影一区二区 | 97av视频在线观看 | 日日躁你夜夜躁你av蜜 | 激情婷婷丁香 | 亚洲女欲精品久久久久久久18 | 天天草综合 | 日韩网站免费观看 | 国产不卡精品视频 | 久久国产福利 | 亚洲午夜久久久影院 | 亚洲视频分类 | www.久久色.com | 久碰视频在线观看 | 欧美日韩在线免费观看视频 | www.五月婷婷 | 久久久久北条麻妃免费看 | 日日色综合 | 欧洲精品亚洲精品 | 国产精品高清一区二区三区 | 久久 亚洲视频 | 色资源二区在线视频 | 一区二区三区电影在线播 | 999久久国精品免费观看网站 | 久久精品导航 | 国产免费国产 | 亚洲国产中文在线观看 | 国产成人一区二区啪在线观看 | 在线观看黄污 | 99热这里只有精品1 av中文字幕日韩 | 久久精品首页 | 亚洲性xxxx| 国产一区精品在线观看 | 亚洲精品九九 | 日韩成人精品 | 欧美国产一区二区 | 九九热只有这里有精品 | 草樱av | 免费在线一区二区 | 黄色av观看 | 久久精品国产精品亚洲 | 欧美va天堂va视频va在线 | 国产精品久久久久久久久大全 | 国产精品中文字幕av | 国产精品18久久久久vr手机版特色 | 国产视频2 | 日韩视频免费观看高清完整版在线 | 国产一级在线免费观看 | 国产精品露脸在线 | 成年人免费在线 | 特级西西444www大胆高清无视频 | 亚洲成人一二三 | 国产精品手机在线观看 | 不卡的av中文字幕 | 狠狠干 狠狠操 | 91成人在线视频观看 | 国产福利电影网址 | 五月婷婷在线播放 | 国产精品日韩欧美一区二区 | 久 久久影院 | 久久久精品欧美 | www黄色com | 91看片在线 | 91av视频在线观看 | 中文字幕在线观看资源 | 69精品在线观看 | 天天操欧美 | 欧美日韩一区二区三区视频 | 国产精品成人自拍 | 国产高清网站 | 久久久免费 | 嫩草91影院 | 国产小视频在线免费观看视频 | 免费日韩 精品中文字幕视频在线 | 国产精品一区二区免费视频 | 色网站黄 | 午夜久久福利视频 | 三级a视频| 久久人人爽人人爽人人片av免费 | 久产久精国产品 | 91精品黄色 | 成人羞羞视频在线观看免费 | 超碰成人免费电影 | 久久久精品久久日韩一区综合 | 在线看黄网站 | 日日日爽爽爽 | 黄网站app在线观看免费视频 | 日日躁你夜夜躁你av蜜 | 亚洲人成人在线 | 午夜精品一区二区三区免费视频 | 国产一级电影网 | 午夜精品视频一区 | 色综合久久五月 | 国产麻豆视频网站 | 日本爽妇网 | 午夜av剧场 | 日韩精品免费一区二区三区 | 亚洲欧洲美洲av | 五月婷婷视频在线 | 婷婷开心久久网 | 少妇精69xxtheporn| 福利片视频区 | 日韩影片在线观看 | 久久精品牌麻豆国产大山 | 欧美性久久久 | 一级黄色在线视频 | 国产精品黄网站在线观看 | 免费久久久久久 | 色.com| 亚洲国产精品一区二区久久,亚洲午夜 | 久久久久电影网站 | 久久人人爽人人爽人人 | 热热热热热色 | 91色在线观看视频 | 亚洲黄色av一区 | 麻豆91网站 | 麻花传媒mv免费观看 | 久久精品视频网站 | 一级片观看| 超碰97在线看 | 天天操天天干天天干 | 国产香蕉在线 | 超碰在线免费97 | 久久男人视频 | 日韩三级视频在线观看 | 在线看欧美 | 日本在线精品视频 | 亚洲第一伊人 | 欧日韩在线视频 | 日日久视频 | 欧美日韩高清一区二区 国产亚洲免费看 | 亚洲精品99久久久久中文字幕 | 成人av免费在线观看 | 久久免费视频3 | 99久久影视| 日韩一级片观看 | 色鬼综合网 | 黄色片网站免费 | 精品一区免费 | 日韩电影在线视频 | av在线免费在线 | 91久久久久久国产精品 | 亚洲成a人片77777kkkk1在线观看 | 精品国产福利在线 | 免费97视频 | 国产精品v a免费视频 | 六月丁香激情综合 | 精品在线免费视频 | 国内精品久久久久影院男同志 | 久久精品一二三区白丝高潮 | 国产精品久久久久久久99 | 日韩精品久久久久久中文字幕8 | 欧美日韩一区二区视频在线观看 | 欧美日韩在线电影 | 久久久久女人精品毛片九一 | 久久综合操 | 久久99亚洲网美利坚合众国 | av丝袜制服| 欧美亚洲精品一区 | 久久99久久99精品免观看软件 | 色婷婷伊人 | 狠狠插狠狠干 | 亚洲欧美日韩国产精品一区午夜 | 最新真实国产在线视频 | 99精品欧美一区二区三区 | 国产一级二级av | 亚洲综合在线观看视频 | 久久精品国产免费看久久精品 | 91资源在线播放 | 国产成人精品网站 | 日本视频高清 | 欧美日产一区 | 久久99电影 | 91精品国产福利在线观看 | 久久人人97超碰国产公开结果 | 91视频高清完整版 | 久久久久免费网 | 午夜精品在线看 | .精品久久久麻豆国产精品 亚洲va欧美 | 菠萝菠萝在线精品视频 | 日韩黄色一区 | 久久久久久久国产精品影院 | 成人免费视频观看 | 国产成人精品三级 | 国产精品久久久久永久免费观看 | 欧美一级高清片 | 在线99视频 | 久草在线视频在线观看 | 日韩精品高清视频 | 综合色伊人 | 精品96久久久久久中文字幕无 | 久久乐九色婷婷综合色狠狠182 | 在线电影日韩 | 中文字幕久久精品亚洲乱码 | 亚洲国产欧美一区二区三区丁香婷 | 成人全视频免费观看在线看 | 免费av福利| 99在线观看视频网站 | 国产69精品久久久久99尤 | 欧美日韩一区二区三区在线免费观看 | 韩国精品在线观看 | 国产精品入口66mio女同 | 亚洲精品国偷拍自产在线观看 | 亚洲精品视频在线观看网站 | 国产高清免费在线观看 | 日本女人的性生活视频 | 香蕉视频在线看 | 99久久精品国产观看 | 国产99久久久精品 | 日韩美女高潮 | 欧美成年性 | 欧美日韩一区二区在线观看 | 婷婷午夜| 久久99热精品 | 在线天堂中文在线资源网 | 久草免费新视频 | 亚洲成人午夜av | 99视频免费观看 | 欧美在线一级片 | 国产福利午夜 | 99热这里只有精品久久 | 米奇狠狠狠888 | 正在播放五月婷婷狠狠干 | 亚洲国产精品成人综合 | 亚洲另类交 | 久久国产一区二区三区 | 国产成人一区二区三区在线观看 | 99久久久久久 | 在线亚洲高清视频 | 国产激情电影综合在线看 | 久久免费高清视频 | 亚洲欧美日韩国产精品一区午夜 | 日韩av在线资源 | 五月婷婷丁香综合 | 在线视频 精品 | 日日操天天操夜夜操 | 五月天丁香 | 国产淫片免费看 | 99电影| 精品国产诱惑 | 91自拍成人 | 西西444www大胆高清图片 | 午夜精品久久久久久久久久 | 色婷婷激婷婷情综天天 | 激情综合电影网 | 91香蕉嫩草 | 久久99久久久久久 | 亚洲深爱激情 | 91在线国内视频 | 美女视频黄是免费的 | 久久99精品久久只有精品 | 91理论电影 | 日日躁夜夜躁aaaaxxxx | 国产又粗又长的视频 | 国产美女久久久 | 91黄色小网站 | 一本大道久久精品懂色aⅴ 五月婷社区 | 夜夜摸夜夜爽 | 狠狠干网址 | 国产午夜三级一区二区三 | 免费黄色在线 | 91亚洲综合 | www成人精品 | 婷婷在线免费 | 成人在线超碰 | 国产精品视频永久免费播放 | 成人av在线直播 | 中国美女一级看片 | 黄色av网站在线观看 | 国产亚洲综合性久久久影院 | 一区二区视频播放 | www.com黄色| 久久不射电影院 | 国产69精品久久app免费版 | 国产精品久久久 | 成年人免费看片 | 中文字幕精品一区二区三区电影 | 久久免费成人精品视频 | 91私密保健| 精品久久一区二区三区 | 精品嫩模福利一区二区蜜臀 | 欧美 日韩 视频 | 成人中文字幕+乱码+中文字幕 | 激情xxxx| 成人在线视频观看 | 婷婷精品国产欧美精品亚洲人人爽 | 在线观看国产一区二区 | 国产日韩一区在线 | 91丨九色丨丝袜 | 美国av片在线观看 | av电影中文字幕 | 国产小视频在线播放 | 人人添人人澡人人澡人人人爽 | 日韩在线第一区 | 亚洲精欧美一区二区精品 | 久久久久激情 | 97在线观看视频 | 欧美va日韩va | av动图 | 在线观看深夜福利 | 国产一区二区播放 | 久久 在线 | 色婷婷免费视频 | 国产123区在线观看 国产精品麻豆91 | 日韩精品中文字幕在线 | 日韩视频一区二区三区在线播放免费观看 | 免费v片 | 久久免费高清 | 日本在线观看视频一区 | 亚洲黄色一级电影 | av日韩不卡 | 国产成人福利在线 | 97视频免费在线 | 日本韩国中文字幕 | 久久久久久久综合色一本 | 美女久久久久久久久久 | 天天拍天天爽 | av不卡免费在线观看 | 色综合久久久网 | 久久影院精品 | 亚洲视频在线观看免费 | 久久久久麻豆v国产 | 日本中出在线观看 | 中文字幕精品一区久久久久 | 天天添夜夜操 | 黄色的网站免费看 | 婷婷丁香国产 | 亚洲国产精品资源 | 国产精品毛片一区二区 | 天天干天天搞天天射 | 久久久久在线观看 | 国产精品久久影院 | 亚洲国产精品传媒在线观看 | 国产精品久久久久久久免费观看 | 亚洲男人天堂2018 | 69久久夜色精品国产69 | 午夜精品一区二区三区视频免费看 | 99欧美视频| 国产精品久久影院 | 日韩一区二区免费播放 | 色99视频| 国产免费一区二区三区网站免费 | 亚洲激情视频在线 | 成人在线你懂得 | 日韩成人免费在线 | 日韩三级视频 | 天天综合视频在线观看 | 国产精品久久久久久999 | 伊人热 | 国产精品12345 | 久久视频免费观看 | 午夜视频在线观看一区 | 亚洲日韩欧美一区二区在线 | 激情五月播播久久久精品 | 在线看片成人 | 中文字幕久久亚洲 | 久久视奸| 黄色的视频 | 成人午夜黄色 | 天堂在线视频中文网 | 亚洲最新合集 | www.888av| 欧洲精品亚洲精品 | 免费试看一区 | 狠狠色噜噜狠狠 | 欧美在线视频一区二区三区 | 九九国产精品视频 | 97人人爽 | 少妇视频一区 | 992tv人人网tv亚洲精品 | av在线免费观看网站 | av成人在线电影 | 激情五月综合网 | 久久99亚洲精品久久 | 亚洲性xxxx| 精品国产乱码久久 | 久热免费在线观看 | 日韩大陆欧美高清视频区 | 国产一区视频在线 | 久久伊人精品一区二区三区 | 日韩av资源在线观看 | 国产精品私人影院 | 五月婷婷播播 | 狠狠色综合网站久久久久久久 | 欧美色图p | 天天色天天艹 | 久久的色| 日韩视频在线观看视频 | 久久的色 | 亚洲人xxx | 国产 一区二区三区 在线 | 国产精品丝袜久久久久久久不卡 | 日韩精品一区二 | 久久伦理电影 | 在线免费观看国产 | 日韩在线免费播放 | 欧美日韩一区二区三区视频 | 欧美日韩视频在线播放 | 日韩中文字幕免费看 | 欧美日韩一区二区久久 | 久久影院一区 | 91在线视频观看免费 | 亚洲 欧美 综合 在线 精品 | 91麻豆精品国产自产在线游戏 | 在线视频欧美精品 | 色综合小说 | 久久手机在线视频 | 成人在线观看免费视频 | 99热这里有 | av电影在线免费 | 国产欧美在线一区二区三区 | 97人人澡人人爽人人模亚洲 | 国产手机在线观看 | 国产丝袜在线 | 国产夫妻av在线 | 一区二区精品在线视频 | 国产麻豆电影 | 国产一区二区精品久久 | 在线一二区 | 又黄又爽又色无遮挡免费 | 久久er99热精品一区二区三区 | 日韩免费一级a毛片在线播放一级 | 在线观看免费黄视频 | 三级av在线 | 久久久久国产成人精品亚洲午夜 | 久久久久国产一区二区三区四区 | 日日操天天爽 | 国产成人一区二区三区免费看 | 国产一级片网站 | 久草免费资源 | 美国人与动物xxxx | 亚洲综合欧美日韩狠狠色 | 毛片.com| 国产一区欧美日韩 | 天天色天天操天天爽 | 九九久久视频 | 亚洲专区在线 | 丁香综合 | 欧美另类交在线观看 | 国产成人精品一区二区三区福利 | 美女免费视频网站 | 亚洲成熟女人毛片在线 | 九九热只有这里有精品 | 亚洲精品久久久久中文字幕二区 | 亚洲黄色免费在线看 | 在线观看亚洲国产精品 | 欧美 亚洲 另类 激情 另类 | 成人黄在线观看 | 日韩免费小视频 | 五月天.com| 国产中文欧美日韩在线 | 国产精品大片在线观看 | 在线播放 亚洲 | 亚洲精品色婷婷 | 欧美一级免费黄色片 | 日韩欧美综合 | 亚洲精品乱码久久久久久久久久 | 婷婷丁香花五月天 | 97精品伊人 | 国产手机视频精品 | 国产成人一区二区三区在线观看 | 久久亚洲免费 | 亚洲成人av电影在线 | 国产日产精品一区二区三区四区的观看方式 | 国产一区二区三区高清播放 | 久久视频免费在线观看 | 国产在线观看免费 | 日韩高清无线码2023 | 日日干天天射 | 久久综合色播五月 | 激情欧美一区二区免费视频 | 超碰午夜 | 国产精品理论片在线观看 | 亚洲一级免费电影 | 国产一级性生活视频 | 国产精品国产三级国产 |