欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

四端IM源碼落地:消息鏈路、多端同步與二開(kāi)驗(yàn)收

四端IM源碼落地:消息鏈路、多端同步與二開(kāi)驗(yàn)收 簡(jiǎn)介面向具備一定開(kāi)發(fā)基礎(chǔ)、希望自建即時(shí)通訊系統(tǒng)的團(tuán)隊(duì)與個(gè)人提供一套2024年親測(cè)可搭建的視酷酷信IM源碼覆蓋安卓、蘋(píng)果、PC與Web四端互通并附教程與解析材料便于理解整體架構(gòu)、部署流程及二次開(kāi)發(fā)方向。壓縮包共9個(gè)文件以6個(gè)txt源碼解析和說(shuō)明、1個(gè)doc文檔、1個(gè)html頁(yè)面及1張jpg圖片為主整體約99KB內(nèi)容側(cè)重四端互通實(shí)現(xiàn)、基于tio通信技術(shù)的方案說(shuō)明與Linux/CentOS部署要點(diǎn)。已有500人瀏覽學(xué)習(xí)。讀者可據(jù)此梳理Java、OC、C#、vue多語(yǔ)言客戶端與服務(wù)端結(jié)構(gòu)參考MongoDB存儲(chǔ)、單機(jī)萬(wàn)人并發(fā)及集群擴(kuò)展思路并圍繞商城等模塊進(jìn)行二開(kāi)評(píng)估文檔還涉及強(qiáng)拖與雙空間切換等實(shí)現(xiàn)解析適合作為自建IM項(xiàng)目的技術(shù)選型與搭建參考。1. 拿到四端 IM 源碼先別急著跑從一條消息鏈路判斷能不能落地如果你在 Safari 里打開(kāi) Web 端消息能發(fā)出去但對(duì)方頭像不刷新這套四端 IM 源碼包就值得先拆鏈路再談部署。它給的是即時(shí)通訊系統(tǒng)的整包源碼和搭建教程賬號(hào)、會(huì)話、消息、離線、多端同步這些基礎(chǔ)件都在適合有技術(shù)能力、準(zhǔn)備二次開(kāi)發(fā)加商城或做私有化溝通模塊的團(tuán)隊(duì)。重點(diǎn)不是“能不能啟動(dòng)”而是登錄態(tài)、消息序號(hào)、離線補(bǔ)償在四端是否一致先驗(yàn)證四端互通再?zèng)Q定改哪里。別把它當(dāng)一鍵安裝包先按一條消息從發(fā)送到落庫(kù)、再到另一端點(diǎn)亮的路徑走一遍。2. 拆清四端互通賬號(hào)、會(huì)話、消息三條主線怎么落到源碼目錄這套源碼包的價(jià)值不在“端多”而在四端共用同一套賬號(hào)、會(huì)話和消息語(yǔ)義。很多團(tuán)隊(duì)拿到包后第一件事是找啟動(dòng)腳本結(jié)果服務(wù)起來(lái)了Web 端能發(fā)文字桌面端收不到移動(dòng)端未讀數(shù)對(duì)不上最后又回頭猜協(xié)議。我一般會(huì)先把源碼目錄按“入口、協(xié)議、存儲(chǔ)、客戶端”四塊切開(kāi)再按一條消息的生命周期做驗(yàn)收不先改 UI也不先接商城。2.1 先定協(xié)議邊界四端不是四套邏輯四端互通最常見(jiàn)的誤區(qū)是把桌面端、Web 端、移動(dòng)端 A、移動(dòng)端 B 當(dāng)成四個(gè)獨(dú)立項(xiàng)目。實(shí)際能跑通的 IM 源碼包通常會(huì)把登錄鑒權(quán)、會(huì)話列表、消息收發(fā)、已讀回執(zhí)、離線補(bǔ)償放在公共服務(wù)端客戶端只負(fù)責(zé)連接、渲染和本地緩存。你要找的不是“哪個(gè)頁(yè)面好看”而是 WebSocket 握手入口、HTTP 登錄接口、消息落庫(kù)點(diǎn)、離線拉取接口這四個(gè)位置。先跑目錄掃描不要憑文件名猜。下面這組命令只做定位不改源碼cd 源碼目錄 # 找項(xiàng)目類型和依賴入口 find . -maxdepth 3 \( -name package.json -o -name pom.xml -o -name composer.json -o -name go.mod \) -print # 找 IM 相關(guān)入口先看命名再進(jìn)文件 find . -maxdepth 4 \( -iname *websocket* -o -iname *socket* -o -iname *message* -o -iname *conversation* \) -print | head -80maxdepth控制掃描深度避免一上來(lái)把依賴目錄全翻出來(lái)-iname不區(qū)分大小寫(xiě)適合源碼包命名不統(tǒng)一的場(chǎng)景head -80是防止輸出太長(zhǎng)先看命名密度。掃完后把命中文件按“連接層、消息層、存儲(chǔ)層”貼標(biāo)簽后面改任何功能都從這三層找落點(diǎn)不要直接改客戶端頁(yè)面。四端驗(yàn)收時(shí)我會(huì)先做一張最小對(duì)照表不追求功能全只追求語(yǔ)義一致端先看什么最小驗(yàn)收點(diǎn)Web 端登錄態(tài)存儲(chǔ)、WebSocket 重連刷新頁(yè)面后會(huì)話不丟Safari 下能收到在線消息桌面端本地緩存、窗口切換切到后臺(tái)再回來(lái)未讀數(shù)不重復(fù)累加移動(dòng)端 A前后臺(tái)切換、離線拉取殺進(jìn)程后重進(jìn)能補(bǔ)到斷線期間的消息移動(dòng)端 B多設(shè)備登錄、踢線策略同賬號(hào)兩端在線時(shí)消息序號(hào)不交叉這張表不是產(chǎn)品需求而是拆包順序。只要其中一端出現(xiàn)“消息到了但會(huì)話沒(méi)更新”就回到服務(wù)端看消息落庫(kù)和會(huì)話摘要是不是兩個(gè)事務(wù)只要出現(xiàn)“兩端順序不同”就回到消息序號(hào)和客戶端排序邏輯。四端互通不是四個(gè)客戶端各自修而是公共服務(wù)端的語(yǔ)義先統(tǒng)一。2.2 啟動(dòng)順序先服務(wù)端健康檢查再客戶端聯(lián)調(diào)源碼包帶教程是好事但教程通常寫(xiě)“先安裝依賴再啟動(dòng)服務(wù)”不會(huì)告訴你失敗時(shí)先看哪一層。我的順序是先看運(yùn)行環(huán)境要求再起服務(wù)端再做 HTTP 健康檢查最后才開(kāi)客戶端。不要一上來(lái)四端全開(kāi)否則日志會(huì)混在一起出了問(wèn)題不知道是連接層還是業(yè)務(wù)層。先按包內(nèi)說(shuō)明確認(rèn)運(yùn)行環(huán)境不要盲目升級(jí)大版本。很多 IM 源碼包對(duì)運(yùn)行時(shí)版本有隱含要求尤其是 WebSocket 庫(kù)和加密庫(kù)升級(jí)后握手失敗很常見(jiàn)。cd 源碼目錄 # 先看教程和配置文件確認(rèn)端口、數(shù)據(jù)庫(kù)、緩存、上傳目錄 ls -la find . -maxdepth 2 \( -iname readme* -o -iname *.env* -o -iname *config* \) -print | head -60 # 按包內(nèi)教程啟動(dòng)服務(wù)端下面用占位腳本表示換成實(shí)際入口 bash ./scripts/start-server.shls -la先看有沒(méi)有隱藏的環(huán)境文件find只找教程和配置不碰業(yè)務(wù)代碼start-server.sh是占位實(shí)際以包內(nèi)教程為準(zhǔn)。啟動(dòng)后不要急著登錄先用 HTTP 請(qǐng)求確認(rèn)服務(wù)端活著# 健康檢查端口從 .env 或教程里取 curl -i http://127.0.0.1:端口/health # 如果源碼沒(méi)有 /health就看登錄接口是否返回結(jié)構(gòu)化錯(cuò)誤 curl -i -X POST http://127.0.0.1:端口/api/login \ -H Content-Type: application/json \ -d {account:test001,password:test001}健康檢查返回 200 只能說(shuō)明進(jìn)程在不代表 WebSocket 可用登錄接口返回 token 才能進(jìn)入下一層。-i是為了看響應(yīng)頭尤其是內(nèi)容類型和跨域頭如果登錄接口返回 HTML 錯(cuò)誤頁(yè)說(shuō)明路由沒(méi)命中或偽靜態(tài)沒(méi)配好先別懷疑客戶端。拿到 token 后再測(cè) WebSocket 握手命令里的路徑和參數(shù)名按源碼實(shí)際接口替換# 用最小 WebSocket 客戶端驗(yàn)證握手和一條回環(huán)消息 npx wscat -c ws://127.0.0.1:端口/im?token登錄返回的token握手成功后再發(fā)一條最小 JSON不要一上來(lái)發(fā)圖片。消息體字段按源碼協(xié)議替換但至少要包含type、convId、clientSeq、body。如果握手失敗看反向代理是否轉(zhuǎn)發(fā)了 Upgrade 頭如果握手成功但發(fā)消息斷開(kāi)看服務(wù)端是否校驗(yàn)了 Origin 或 token 過(guò)期時(shí)間。2.3 數(shù)據(jù)表與消息 ID先保證能對(duì)上再談性能IM 源碼包最容易讓人誤判的地方是“消息發(fā)出去了”不等于“消息可追蹤”。四端互通必須有三個(gè)標(biāo)識(shí)消息 ID、客戶端序號(hào)、服務(wù)端序號(hào)。消息 ID 用來(lái)去重客戶端序號(hào)用來(lái)防止弱網(wǎng)重發(fā)造成重復(fù)服務(wù)端序號(hào)用來(lái)給會(huì)話內(nèi)消息排序。很多包只做了消息 ID結(jié)果一端重連后重復(fù)拉取未讀數(shù)就翻倍。我不會(huì)直接改原表而是先加一張校驗(yàn)表或臨時(shí)表把一條消息的軌跡記下來(lái)。字段名按源碼實(shí)際表結(jié)構(gòu)調(diào)整下面只表達(dá)最小結(jié)構(gòu)-- 僅用于聯(lián)調(diào)期追蹤不覆蓋源碼原有消息表 CREATE TABLE im_message_check ( msg_id VARCHAR(64) PRIMARY KEY, tenant_id VARCHAR(32) NOT NULL, from_uid VARCHAR(64) NOT NULL, to_id VARCHAR(64) NOT NULL, conv_id VARCHAR(96) NOT NULL, client_seq BIGINT NOT NULL, server_seq BIGINT NOT NULL, body_type TINYINT NOT NULL, created_at BIGINT NOT NULL ); CREATE UNIQUE INDEX uk_client_seq ON im_message_check(from_uid, client_seq); CREATE INDEX idx_conv_seq ON im_message_check(conv_id, server_seq);msg_id是全局唯一鍵服務(wù)端生成后回給客戶端client_seq由客戶端單調(diào)遞增配合from_uid做唯一索引可以擋住重發(fā)server_seq由服務(wù)端在會(huì)話內(nèi)分配客戶端只按它排序不自己造順序conv_id要能區(qū)分單聊和群聊。聯(lián)調(diào)時(shí)每發(fā)一條消息就寫(xiě)一條校驗(yàn)記錄四端收到的msg_id、server_seq必須能對(duì)上對(duì)不上就查網(wǎng)關(guān)是否重試、客戶端是否重發(fā)、服務(wù)端是否分配了兩套序號(hào)。提示校驗(yàn)表只用于聯(lián)調(diào)不要留在生產(chǎn)庫(kù)但索引設(shè)計(jì)要保留思路消息去重和會(huì)話排序都靠這幾個(gè)字段。3. 登錄到離線消息四端互通的三個(gè)狀態(tài)機(jī)別寫(xiě)亂四端 IM 的穩(wěn)定性很多時(shí)候不是協(xié)議多復(fù)雜而是三個(gè)狀態(tài)機(jī)沒(méi)對(duì)齊登錄態(tài)、會(huì)話已讀態(tài)、離線補(bǔ)償態(tài)。登錄態(tài)決定誰(shuí)能連上來(lái)會(huì)話已讀態(tài)決定未讀數(shù)怎么算離線補(bǔ)償態(tài)決定斷線期間的消息怎么補(bǔ)。這三個(gè)狀態(tài)只要有一個(gè)在四端實(shí)現(xiàn)不同用戶就會(huì)看到“消息發(fā)了但紅點(diǎn)不消”“換端后已讀回到未讀”“離線消息重復(fù)三遍”這類玄學(xué)問(wèn)題。3.1 登錄態(tài)token、設(shè)備號(hào)、踢線策略要一起落登錄不是拿到 token 就結(jié)束。四端互通至少要有uid、deviceId、token、lastSeq四個(gè)本地狀態(tài)。deviceId要穩(wěn)定不能每次刷新都變否則服務(wù)端會(huì)把同一臺(tái)設(shè)備當(dāng)成新設(shè)備離線消息重復(fù)推送lastSeq是會(huì)話級(jí)增量拉取的游標(biāo)不能只存在內(nèi)存里。下面這段客戶端邏輯只做本地會(huì)話落盤(pán)不依賴具體框架// 登錄成功后落本地會(huì)話deviceId 首次生成后不要變 function getOrCreateDeviceId() { let id localStorage.getItem(im_device_id); if (!id) { id dev_ Date.now() _ Math.random().toString(36).slice(2, 10); localStorage.setItem(im_device_id, id); } return id; } const session { token: res.token, uid: res.uid, deviceId: getOrCreateDeviceId(), lastSeq: Number(localStorage.getItem(im_last_seq) || 0) }; localStorage.setItem(im_session, JSON.stringify(session));deviceId用時(shí)間戳加隨機(jī)串只是最小實(shí)現(xiàn)生產(chǎn)環(huán)境應(yīng)換成穩(wěn)定的設(shè)備指紋或服務(wù)端下發(fā)lastSeq從本地讀首次登錄為 0token要設(shè)置過(guò)期時(shí)間不能永久有效。踢線策略要明確同賬號(hào)同端互踢還是同賬號(hào)多端共存。多端共存時(shí)服務(wù)端要給每個(gè)設(shè)備單獨(dú)維護(hù)在線狀態(tài)消息回執(zhí)要帶上設(shè)備號(hào)否則 A 端讀了消息B 端的未讀數(shù)也會(huì)被清掉。登錄接口返回后先調(diào)一次“當(dāng)前用戶信息”和“會(huì)話列表”接口確認(rèn) token 在 HTTP 和 WebSocket 兩條鏈路上都有效。很多包只校驗(yàn) HTTP不校驗(yàn) WebSocket 握手結(jié)果 token 過(guò)期后 HTTP 401WebSocket 還掛著客戶端以為在線實(shí)際發(fā)不出消息。聯(lián)調(diào)時(shí)把 token 過(guò)期時(shí)間調(diào)短觀察重連和刷新邏輯比上線后才發(fā)現(xiàn)強(qiáng)。3.2 會(huì)話與已讀未讀數(shù)不是簡(jiǎn)單加一未讀數(shù)是最容易在四端之間打架的字段。單端在線時(shí)“收到消息加一、打開(kāi)會(huì)話清零”看起來(lái)沒(méi)問(wèn)題多端在線后A 端打開(kāi)會(huì)話B 端還顯示紅點(diǎn)用戶就會(huì)認(rèn)為消息沒(méi)同步。常見(jiàn)做法是把已讀回執(zhí)做成獨(dú)立事件不直接改消息表而是記錄“哪個(gè)用戶、哪個(gè)會(huì)話、讀到哪個(gè) serverSeq”。會(huì)話列表的未讀數(shù)由服務(wù)端按lastReadSeq和maxSeq計(jì)算客戶端只做展示緩存。下面這段發(fā)送邏輯把clientSeq落盤(pán)目的是弱網(wǎng)重發(fā)時(shí)服務(wù)端能識(shí)別重復(fù)let clientSeq Number(localStorage.getItem(im_client_seq) || 0); function sendText(socket, convId, text) { clientSeq 1; localStorage.setItem(im_client_seq, String(clientSeq)); socket.send(JSON.stringify({ type: msg.send, convId, clientSeq, body: { type: text, text }, ts: Date.now() })); }clientSeq必須單調(diào)遞增不能每次連接重置convId用服務(wù)端會(huì)話 ID不要用對(duì)方 uid 拼ts只做展示參考排序以服務(wù)端serverSeq為準(zhǔn)。服務(wù)端收到后先按from_uid clientSeq去重再分配serverSeq最后寫(xiě)消息表和會(huì)話摘要。會(huì)話摘要里的maxSeq只能增不能減已讀回執(zhí)里的lastReadSeq也只能增不能減這兩個(gè)單調(diào)性一旦破壞四端未讀數(shù)就會(huì)來(lái)回跳。已讀回執(zhí)還要區(qū)分“會(huì)話已讀”和“消息已讀”。單聊里兩者差別不大群聊里差很多用戶打開(kāi)群會(huì)話不代表每條消息都讀了。源碼包如果只有會(huì)話級(jí)已讀二開(kāi)做商城客服時(shí)就會(huì)遇到“用戶點(diǎn)進(jìn)會(huì)話但沒(méi)看訂單卡片”的爭(zhēng)議。我的做法是先保留源碼原有已讀模型再在業(yè)務(wù)層加消息級(jí)回執(zhí)不直接改底層消息表。3.3 離線消息與補(bǔ)償窗口別用“全量拉取”糊弄離線消息是四端互通的血淚區(qū)。客戶端斷線后重連服務(wù)端要告訴它“從哪個(gè)序號(hào)開(kāi)始補(bǔ)”。常見(jiàn)錯(cuò)誤是每次重連都拉最近 100 條結(jié)果重復(fù)消息一大堆更糟的是只拉在線期間的消息用戶切后臺(tái)十分鐘回來(lái)發(fā)現(xiàn)中間消息沒(méi)了。正確做法是客戶端帶lastSeq服務(wù)端按會(huì)話返回serverSeq lastSeq的消息并限制單次條數(shù)客戶端收到后更新lastSeq。-- 按會(huì)話增量拉取limit 控制單次補(bǔ)償量 SELECT msg_id, conv_id, from_uid, server_seq, body_type, created_at FROM im_message WHERE conv_id ? AND server_seq ? ORDER BY server_seq ASC LIMIT 200;conv_id必須帶索引否則消息一多就慢server_seq ?里的問(wèn)號(hào)是客戶端上次確認(rèn)的最大序號(hào)LIMIT 200是補(bǔ)償窗口不要一次拉全量。客戶端拉完后不要立刻把lastSeq推到最新要先確認(rèn)本地已落庫(kù)或已渲染再更新游標(biāo)。否則渲染失敗一次游標(biāo)已經(jīng)前移消息就永久丟了。補(bǔ)償窗口還要和推送配合。離線推送只負(fù)責(zé)“叫醒”不負(fù)責(zé)“送完整消息”用戶點(diǎn)開(kāi)推送后客戶端仍然要走增量拉取。很多包把推送內(nèi)容當(dāng)消息本體結(jié)果推送到了但會(huì)話列表沒(méi)更新用戶點(diǎn)進(jìn)去還要等半天。聯(lián)調(diào)時(shí)把網(wǎng)絡(luò)斷開(kāi) 30 秒發(fā) 5 條文字和 1 張圖片再恢復(fù)網(wǎng)絡(luò)檢查四端是否都只出現(xiàn)一次、順序一致、未讀數(shù)正確。這個(gè)場(chǎng)景比壓測(cè)更能暴露狀態(tài)機(jī)問(wèn)題。4. 二次開(kāi)發(fā)加商城先給 IM 源碼劃出可擴(kuò)展縫標(biāo)題里寫(xiě)支持二次開(kāi)發(fā)、可以加商城這個(gè)方向是合理的但前提是別把商城邏輯塞進(jìn)消息核心。IM 源碼包最怕二開(kāi)時(shí)直接改消息表、改會(huì)話表、改登錄表短期能跑后面每加一個(gè)業(yè)務(wù)消息就崩一次。我一般會(huì)把擴(kuò)展點(diǎn)分成三類消息類型擴(kuò)展、用戶體系映射、業(yè)務(wù)事件旁路。商城只掛在旁路上不碰會(huì)話狀態(tài)機(jī)。4.1 消息類型擴(kuò)展別改核心 switch文字、圖片、語(yǔ)音、文件是 IM 的基礎(chǔ)消息類型商城訂單卡片、優(yōu)惠券、物流提醒屬于業(yè)務(wù)消息。很多源碼包用一個(gè)大switch處理所有類型二開(kāi)時(shí)每加一種就改一次核心文件沖突概率很高。更穩(wěn)的做法是保留核心switch只做分發(fā)業(yè)務(wù)類型注冊(cè)到獨(dú)立 handler 表里。下面是一個(gè)最小分發(fā)器不依賴具體框架const handlers { text: renderText, image: renderImage, file: renderFile, order_card: renderOrderCard, // 商城消息只負(fù)責(zé)渲染 logistics_card: renderLogisticsCard }; function onMessage(msg) { const type msg.body msg.body.type; const render handlers[type] || renderUnsupported; render(msg); }handlers的 key 要和協(xié)議里的body.type一致order_card只做展示不在這里改未讀數(shù)、不改會(huì)話順序renderUnsupported要兜底避免新客戶端收到舊服務(wù)端不認(rèn)識(shí)的消息就白屏。服務(wù)端也要有對(duì)應(yīng)的消息類型白名單不能客戶端傳什么就存什么否則二開(kāi)接口會(huì)變成任意 JSON 存儲(chǔ)。業(yè)務(wù)消息的落庫(kù)策略要和普通消息分開(kāi)。訂單卡片可以只存業(yè)務(wù) ID 和快照不存整段 HTML物流提醒可以存模板參數(shù)客戶端按版本渲染。這樣商城改版時(shí)不用回刷歷史消息老客戶端也能顯示降級(jí)文案。4.2 用戶與商城賬戶解耦一張映射表就夠IM 用戶和商城用戶不要共用一張表。IM 側(cè)只需要im_uid、昵稱、頭像、在線狀態(tài)商城側(cè)有訂單、余額、優(yōu)惠券。兩邊用映射表關(guān)聯(lián)不要把商城余額字段塞進(jìn) IM 用戶表否則每次商城改字段都要?jiǎng)?IM 登錄鏈路。映射表要保證一個(gè) IM 用戶只能綁一個(gè)商城用戶反之亦然。CREATE TABLE mall_user_map ( im_uid VARCHAR(64) PRIMARY KEY, mall_uid VARCHAR(64) NOT NULL UNIQUE, created_at BIGINT NOT NULL ); -- 綁定前先查重避免并發(fā)下重復(fù)綁定 SELECT im_uid, mall_uid FROM mall_user_map WHERE im_uid ? OR mall_uid ?;im_uid做主鍵保證一個(gè) IM 用戶只有一條映射mall_uid加唯一索引保證一個(gè)商城用戶不會(huì)被兩個(gè) IM 賬號(hào)綁定created_at用毫秒時(shí)間戳方便排查綁定順序。綁定動(dòng)作要冪等重復(fù)提交返回同一條記錄不要報(bào)唯一鍵沖突給前端。商城下單消息通過(guò)mall_uid查im_uid再走 IM 消息通道發(fā)送IM 側(cè)不感知訂單金額和支付狀態(tài)。4.3 教程怎么用把步驟轉(zhuǎn)成驗(yàn)收清單包內(nèi)教程要當(dāng)成“啟動(dòng)參考”不能當(dāng)成“驗(yàn)收標(biāo)準(zhǔn)”。教程能讓你把服務(wù)跑起來(lái)但四端互通、離線補(bǔ)償、二開(kāi)擴(kuò)展這些點(diǎn)教程通常只寫(xiě)一半。我的做法是把教程里的每一步轉(zhuǎn)成一條可觀察結(jié)果配完數(shù)據(jù)庫(kù)看表是否建全啟動(dòng)服務(wù)看健康檢查是否返回登錄成功看 token 是否能用于 WebSocket發(fā)一條消息看四端是否都收到同一個(gè)msg_id。源碼包聲稱沒(méi)有后門(mén)這個(gè)口號(hào)不能替代檢查。上線前至少做三件事搜危險(xiǎn)函數(shù)、看外鏈請(qǐng)求、查定時(shí)任務(wù)和啟動(dòng)腳本。下面這組命令只做靜態(tài)排查命中不等于有問(wèn)題但必須逐條解釋cd 源碼目錄 # 搜常見(jiàn)危險(xiǎn)調(diào)用按語(yǔ)言調(diào)整擴(kuò)展名 grep -RInE eval\(|base64_decode\(|shell_exec\(|exec\(|system\( . \ --include*.php --include*.js --include*.java | head -60 # 看啟動(dòng)腳本和定時(shí)任務(wù)確認(rèn)沒(méi)有多余外聯(lián) find . -maxdepth 4 \( -name *.sh -o -name *.bat -o -name crontab* \) -print | head -40grep的-R遞歸、-I跳過(guò)二進(jìn)制、-n顯示行號(hào)、-E支持?jǐn)U展正則head -60防止刷屏。命中eval不一定是后門(mén)可能是模板引擎或配置解析但要能說(shuō)清楚輸入來(lái)源。啟動(dòng)腳本重點(diǎn)看有沒(méi)有下載遠(yuǎn)程文件、寫(xiě)入系統(tǒng)目錄、添加計(jì)劃任務(wù)。檢查完再做一次斷網(wǎng)啟動(dòng)看服務(wù)是否仍然能起來(lái)依賴遠(yuǎn)程鑒權(quán)的包在斷網(wǎng)時(shí)會(huì)暴露問(wèn)題。5. 避坑排查四端 IM 聯(lián)調(diào)最常翻車(chē)的 5 個(gè)現(xiàn)場(chǎng)四端 IM 的問(wèn)題很少是“代碼完全不會(huì)寫(xiě)”更多是環(huán)境、協(xié)議、緩存和瀏覽器差異疊在一起。下面這 5 個(gè)現(xiàn)場(chǎng)是我拆這類源碼包時(shí)最常遇到的按“現(xiàn)象 → 原因 → 解決”記錄方便你對(duì)著日志查。5.1 登錄成功但 WebSocket 立刻斷開(kāi)現(xiàn)象HTTP 登錄返回 200token 也拿到了客戶端一連 WebSocket 就斷開(kāi)服務(wù)端日志只有一條握手記錄。原因通常是反向代理沒(méi)有轉(zhuǎn)發(fā)Upgrade和Connection頭或者服務(wù)端校驗(yàn)了Origin而 Web 端域名不在白名單。也有可能是 token 放在 query 里被網(wǎng)關(guān)過(guò)濾握手階段拿不到用戶身份。先分層查不要直接改客戶端重連邏輯# 先確認(rèn) HTTP 層和 token 有效 curl -i -H Authorization: Bearer token http://127.0.0.1:端口/api/me # 再看 WebSocket 握手響應(yīng)頭 curl -i -N \ -H Connection: Upgrade \ -H Upgrade: websocket \ -H Sec-WebSocket-Version: 13 \ -H Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ \ http://127.0.0.1:端口/im?tokentoken/api/me返回 401 就先解決 token握手返回 301/302 說(shuō)明路徑被重寫(xiě)返回 400 看Sec-WebSocket-Key和版本頭返回 403 看 Origin 白名單。解決方式是把 WebSocket 路徑從靜態(tài)資源規(guī)則里排除反向代理單獨(dú)加 Upgrade 轉(zhuǎn)發(fā)服務(wù)端把 Web 端域名加入白名單。改完再測(cè) Safari因?yàn)?Safari 對(duì)混合內(nèi)容和連接復(fù)用更敏感。5.2 同一賬號(hào)兩端消息順序不一致現(xiàn)象A 端先發(fā)“1”再發(fā)“2”B 端先看到“2”再看到“1”刷新后又恢復(fù)正常。原因通常是客戶端按本地時(shí)間排序而兩端時(shí)鐘不一致或者服務(wù)端把消息寫(xiě)入和會(huì)話摘要更新放在兩個(gè)異步隊(duì)列里推送順序和落庫(kù)順序不一致。還有一種是重發(fā)時(shí)clientSeq重置服務(wù)端去了重但分配了新的serverSeq。解決思路是統(tǒng)一排序源客戶端只按服務(wù)端serverSeq升序渲染本地時(shí)間只做展示服務(wù)端在會(huì)話維度串行分配序號(hào)至少保證同一會(huì)話內(nèi)單調(diào)遞增重發(fā)消息命中from_uid clientSeq后返回原msg_id和原serverSeq不要重新分配。聯(lián)調(diào)時(shí)把兩端系統(tǒng)時(shí)間故意調(diào)差 5 分鐘再發(fā) 20 條消息看順序是否仍然一致。5.3 Safari 下圖片消息預(yù)覽失敗現(xiàn)象Chrome 里圖片消息正常Safari 里只顯示占位圖控制臺(tái)報(bào)內(nèi)容類型或跨域錯(cuò)誤。原因常見(jiàn)有三種上傳接口返回的Content-Type是application/octet-stream圖片域名和 Web 端域名不同但響應(yīng)頭缺少允許跨域讀取的配置圖片是混合內(nèi)容頁(yè)面 HTTPS 而圖片地址是 HTTP。Safari 對(duì)這幾類問(wèn)題比其它瀏覽器更嚴(yán)格。先直接看響應(yīng)頭不要只看頁(yè)面curl -I https://你的域名/upload/示例圖片.jpg重點(diǎn)看Content-Type是否為image/jpeg或image/pngContent-Length是否存在跨域時(shí)看Access-Control-Allow-Origin。解決方式是在上傳服務(wù)端按擴(kuò)展名或文件頭寫(xiě)正確類型圖片域名統(tǒng)一走 HTTPS跨域讀取按需加允許頭。不要用前端 base64 硬轉(zhuǎn)大圖會(huì)把消息體撐爆。5.4 離線消息重復(fù)或丟失現(xiàn)象斷網(wǎng) 30 秒再恢復(fù)同一句話出現(xiàn)兩次或者切后臺(tái)十分鐘回來(lái)發(fā)現(xiàn)中間幾條消息沒(méi)了。重復(fù)通常是客戶端重發(fā)時(shí)clientSeq沒(méi)落盤(pán)或者服務(wù)端去重鍵只用了msg_id重發(fā)生成了新msg_id。丟失通常是客戶端先更新lastSeq再渲染渲染失敗后游標(biāo)已經(jīng)前移也可能是服務(wù)端增量查詢用了而不是邊界消息被跳過(guò)。解決方式客戶端發(fā)送前先落clientSeq服務(wù)端用from_uid clientSeq做唯一約束拉取離線消息用server_seq lastSeq拉完先落本地再更新游標(biāo)服務(wù)端返回消息時(shí)帶maxSeq客戶端用它校準(zhǔn)本地游標(biāo)但不要直接跳過(guò)去。聯(lián)調(diào)時(shí)專門(mén)發(fā)一條邊界消息斷開(kāi)、重連、再拉取確認(rèn)這條消息只出現(xiàn)一次。5.5 “無(wú)后門(mén)”檢查只看壓縮包目錄現(xiàn)象解壓后沒(méi)看到可疑文件就認(rèn)為源碼安全上線后服務(wù)端出現(xiàn)陌生外聯(lián)請(qǐng)求。原因可能是后門(mén)不在業(yè)務(wù)目錄而在依賴包、啟動(dòng)腳本、定時(shí)任務(wù)或前端靜態(tài)資源里也可能是構(gòu)建時(shí)從遠(yuǎn)程拉取了被篡改的依賴。只看目錄結(jié)構(gòu)發(fā)現(xiàn)不了這些問(wèn)題。靜態(tài)檢查要覆蓋入口和依賴不要只掃業(yè)務(wù)代碼cd 源碼目錄 # 看依賴鎖文件和安裝腳本 find . -maxdepth 3 \( -name package-lock.json -o -name composer.lock -o -name *.sh \) -print # 搜遠(yuǎn)程下載和編碼執(zhí)行的可疑組合 grep -RInE curl |wget |base64|fromCharCode|atob\( . \ --include*.sh --include*.js --include*.php | head -80find先定位依賴鎖和腳本grep找遠(yuǎn)程下載、編碼執(zhí)行等組合。命中后逐條看輸入來(lái)源尤其是啟動(dòng)時(shí)執(zhí)行的腳本。更穩(wěn)的做法是在隔離環(huán)境斷網(wǎng)啟動(dòng)觀察是否有外聯(lián)再把前端靜態(tài)資源做一次構(gòu)建產(chǎn)物對(duì)比確認(rèn)沒(méi)有多余腳本。源碼包說(shuō)無(wú)后門(mén)只能作為線索不能作為驗(yàn)收結(jié)論。6. 上線前的一條消息追蹤把四端互通驗(yàn)收成可復(fù)現(xiàn)記錄上線前我不會(huì)只看“四端都能發(fā)消息”而是選一條消息做全鏈路追蹤把每個(gè)節(jié)點(diǎn)的字段記下來(lái)。文字消息選一條帶clientSeq的圖片消息選一條帶上傳文件的再選一條離線期間發(fā)送的三條就夠暴露大部分問(wèn)題。檢查點(diǎn)記錄字段通過(guò)標(biāo)準(zhǔn)客戶端發(fā)送uid、deviceId、clientSeq、convId同一設(shè)備重啟后clientSeq不回退服務(wù)端落庫(kù)msg_id、serverSeq、created_at同一會(huì)話內(nèi)serverSeq單調(diào)遞增在線推送接收端msg_id、serverSeq四端收到的msg_id一致順序一致離線補(bǔ)償lastSeq、拉取條數(shù)、maxSeq斷線期間消息只補(bǔ)一次不丟不重已讀回執(zhí)lastReadSeq、設(shè)備號(hào)一端已讀后另一端未讀數(shù)按規(guī)則變化這張表我會(huì)在聯(lián)調(diào)環(huán)境跑三遍正常網(wǎng)絡(luò)、斷網(wǎng) 30 秒、切換前后臺(tái)。每遍只改一個(gè)變量記錄服務(wù)端日志和客戶端本地存儲(chǔ)。只要有一條對(duì)不上就先停二開(kāi)不要用“再發(fā)一次看看”糊過(guò)去。從那以后我每次拿到這類 IM 源碼包都先跑這條消息追蹤再談商城和上線。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
超碰99在线观看| 91操在线| 亚洲五月花| 五月丁香六月激情综合| 琪琪狠狠干| www.henhenl| 五月婷婷免费在线观看| 天天做天天爱高潮片| 色九月丁香婷婷蜜桃在线观看| 丁香五月网址| 久久久人妻| 日韩砖区| 久久视屏这里只有久久| 大香蕉九操| 在线日本www| 五月亭亭直播| 99热自拍| 色五月激情综合| 婷婷综合网伊人| 99熟女啪啪视频| 丁香六月婷婷基地| 蜜桃婷婷丁香综合久久开心亚洲| 99这里有精品| 91精品丝袜久久久久久| 亚洲色视频| 色综合激情| 成人小说 五月天 婷婷| 韩国不卡AC视频| 天天操夜夜夜拍拍拍| 99资源人人| 国产亚洲色婷婷久久99精品91| 五月婷婷啪啪综合网| 人人爽在线视频综合网| 九月丁香婷婷综合激情| 久婷婷五月激情| 日本人人干| 国产99久| 97碰碰人人视频| 97伦乱| 亚洲色五月| 色九九综合| 深爱五月天| 精品久久久人妻| 日本AAAAAAAAAAAAAA片| 97婷婷五月| 精品色色网| 麻豆科斗777| 丁香五月久久| 日本va欧美va精品发布视频| 丁香伊人综合| 丁香五月综合在线观看| 狠狠干,狠狠操| 五月丁香激情婷婷| 日日操天天操| 99婷婷| 五月天久久综合| 狠狠五月天| 99热九九热| 久久成人人妻| 亚洲成人超碰| 五月天婷婷久久| 九九碰九九爱97超碰| 99色热视频| 操日视频| 激情丁香五月| 国产午夜成人AV在线播放| 99热9| 免费亚洲婷婷| 久热精品免费视频4| 丁香婷婷天堂| 婷婷成人在线| 丁香婷婷激情综合五月激情| 五月情综合| 色婷婷色五月色丁香| 伊人丁香婷婷东京| 五月天成人网在线观看| 91欧美| 99热这里只有精品8| 中文字幕按摩做爰| 丁香综合婷婷五月天| 五月婷婷综合在线视频小说| 国产97色在线 | 日韩| 26uuu青青| 五月婷婷丁香啪啪| 丁香 婷婷 亚洲 熟女| 啪啪小说五月天| 99爱爱网| 免费看欧美成人A片无码| 欧美顶级少妇做爰HD| 中文超碰视在线| 怡红院91a√| 色色色婷婷五月天| 天天操天天操天天操天天操天天操天天操| 这里只有精品热| 日日夜夜青青草| 色丁香五月综合网| 天天插天天插天天插天天插| 超碰色热| 久久久色婷婷五月天| 人妻熟妇六区| 天堂久久精品| 5月丁香综合图区| 午夜色丁香| 丁香婷婷性爱| 熟女激情五月天| 丁香五月性爱| 色色色天堂网| 九九草热在线观看| 久热99| 大香蕉AV电影在线| 亚洲欧洲99| 我要看激情五月天| 亚洲热视频在线| 日韩青青| 色六月丁香婷婷狠狠干| 黄网在线播放| av成人在线播放| 婷丁香久综合| 97人人操| 九伊人网| 五月婷婷影| 亚洲热综合| 99热97美女| 97人人射| 日韩操人| 九艹在线| 99热66| 六月丁香网| 久99精品视频| 五月天激情网开心网| 99精品在线观看| 五月丁香六月婷婷综合| 色综合综合色| 欧美性生交XXXXX无码小说| 色色婷婷婷丁香五月天| 婷婷久久综合久色| 7777久久亚洲中文字幕| 丁香五月人妻熟女| 午夜天堂一区人妻| 99无码免费视频| A1片久久久| 九九爱精品网站| 五月天·www·com| 久久亚洲婷婷| 欧美丁香婷婷天天操| 99热成人精品网站| 一区二区三区XXXXXX| 爱草视频在线观看| 国产午夜伦鲁鲁| 99re热视频这里只有综合亚洲| 婷婷五月天国产| 国内精品99| 欧美在线骚货| 欧美色婷婷| 久婷婷| 99人妻碰碰碰久久久久视| 亚洲正能量欧美| 色色色色色色综合网| 成人做爰A片免费看网站找不到了| 99在线观看精品视频| 丁香婷婷狠狠97| 妻久久久久| 99热官网精品在线| 国产VA播放| 婷婷激情五月| 久久在这里有精品| 伊人高清无码| av操一操| 五月天激情啪啪| 五月激情影视| 五月婷中文字幕| 99热最新精品| www.粉嫩av.com| 五月丁香黄色视频| 五月婷婷播| 五月婷婷免费| www...com黄在线观看| 26uuu国产精品| 丰满女老板BD高清A片| 五月婷视频| 亚洲AV电影美洲AV电影| 色亭亭五月天丁香综合AV - 百度 - 百度| 婷婷五月天性| 九九热99视频在线| 久99热| 另类激情码| 婷婷色综合| 99人人操人人操人人精| 色综合色色色| 五月丁香六月激情综合| 激情五月天在线观看婷婷| 九九九九国产| 夜夜www| 人妻第九页| 一级二级香港秋霞欧美欧美秋霞| 婷婷伊人綜合| 在线播放中文字幕| 婷婷操逼网| 亚洲综合色成丁香五月色| 91seAV| 2025年最新亚洲在线欧美 | www.五月天| 色婷婷手机在线| 丁香五月色情| 99热只有精品在线观看| 丁香六月婷婷综合欧美| 亚洲人妻av伦理| 欧美色小说婷婷| 五月婷久久综合| 九九九九这里只有精品| 人妻22p| 99视频在线精品| 五月丁香综合久久| 色欲影香| 九久久婷婷| 丁香六月欧美| 婷婷丁香五月精品| 夜夜爱影院| 99热在这里只有精品| 性 色 婷婷| 久久久久9久无码视频| 99网99热| 色色色色色色色色色999| 成人午夜在线视频| 免费无码毛片一区二区A片| 五月天精品综合在线| 丁香美女主播视频在线观看| 亚洲旡码| 激情98色婷婷五| 少妇达人正片在线播放_ikun_福利吧| 婷婷丁香射射| aV欲望人妻中文字幕| 激情婷婷色色| 九九视频这里有精品| 国产9色在线/日韩| 操比激情五月| 婷婷五月中文字幕| 久久久99视频| 狠狠婷婷综合| 很很干天天干| 99成人在线观看| 亚洲第一色网站| 另类丁香综合| 大香蕉 婷婷| 夜夜撸天天操| 色五月婷婷在线| 艹| 色噜噜狠狠色综合成人网| 日欧一片内射VA在线影院| 日本天堂爱爱| www五月| 亚洲五月天天| 26uuu视频欧美| 96色婷婷| 色综合五月| 久久婷婷五月| 丁香激情久久| 99福利导航| 亚洲免费99| 九九热99re8热免费观看 | 亚洲第一第二网站| 激情性爱五月天| Blackedraw视频一区二区| 99爱视频| 色屌丝中文字幕| 五月丁香六月欧美综合| 99色啊| 激情综合在线观看| 超碰伊人碰婷婷五月| 色哟呦av| 亚洲爆乳无码精品AAA片蜜桃| 97视频久久| 五月丁香婷爱在线| 婷婷王月天影院| 亚洲色情激情丁香五月| www.五月天性.com| 丁香婷婷六月激情| 久久这里都是精品视频| 亚洲AAA| 日韩砖区| 开心五月丁香综合久久| 激情综合色五月六月婷婷| 99热啪啪| 看黄的网站18禁| 亚洲婷婷丁香| 亚洲另类婷婷综合| 婷婷五月丁香基地在线视频官网| 婷婷色色五月| 凹凸7777操操操| 九九热在线观看6| 97丁香婷婷| 久操干| 九九干视频| 9热久久| 免费AV在线网址| bukadeavzaixian| 亚洲啪啪精品| 欧洲一区二区| 在线99热| 五月天六月天| 五月丁香黄色| 五月丁香激情综合久久| 91九色精品女同系列| 在线观看av网站| 五月天丁香综合久久国产| 久久久久久人妻| 色五月成人| 97色在线观看视频| 色色色综合网| 91聚色综合网| www.sebowuyue| 99热网址| 婷婷五月天日本国产| 欧洲亚洲免费视频区| 色天天综合色| 九九热视频这里只有精品| 日日爽夜夜爽| 久久这里有精品| 另类图片五月天| 欧美激情综合五月色丁香| 丁香五月婷婷激情四射深爱激情| 九九久久精品國產| 26uuu国自产精品| 99热这里只有精品手机在线观看| 精品三区影院| 色婷婷成人网| 色五月激情五月| 色综合婷婷99| 大香蕉久| 五月丁香六月婷婷综合伊人| 色色色色色网| 亚洲精品99| 91嫩草国产线观看亚洲一区二区| 香蕉大综综综合久久| 夜夜 操无码| 激情校园 亚洲| 97操碰视频| 精品婷婷| 99燥99日| 色综合大香蕉| 99re这里有精品手机在线| 色 色 色综合com| 国产激情av| 五月天啪啪| 夜夜AVV| 激情网第九色| 四色五月婷婷在线观看| 99热这里| 色欧美影院| 操操操操操操婷婷五月天| 五月丁香六月激情网| 色婷婷婷婷| 天天插天天干| 色婷婷综合影院| 丰满少妇猛烈A片免费看观看| 婷婷五月激情综合网| www99在线观看视频| 九九精品这里只有| 色综合九九色综合88| 国产做爰视频免费播放| 色婷婷成人网| 成人丁香婷婷| 欧美叉叉叉BBB网站| 狠狠综合区| 月婷婷亚洲| 中文av网站| 天天干天天拍| aaaaa黄色| 色婷婷亚洲精品天天综| 99原创自拍视频在线观看| 久久久五月五丁香| 婷婷丁香小说| 嘿嘿视频免费看9| 99热99成人| 丁香五月Av| 国产成人精品一区二三区熟女在线| 玖玖婷婷精品| 婷婷五月综合亚洲| 色婷婷小视频| 69激情小说| 另类图片五月天| 亚洲色综久久五月| 天天久| 亚洲精品无AMM毛片| 99热播放| 丁香婷婷色九月| 久热精彩视频98| 视色网在线播放| 丁香九月激情| 黄色五月婷婷| 色婷婷欧美| 久99久99精品免| 久久这里有精品在线观看| 99热欧美| 爱爱色五月天| 天天干天天插| 电影《战争与艾拉》免费观看| 91色噜噜狠狠狠狠色综合| 韩国97天堂| 五月开心婷婷| 超碰在线观看三级片| 天天爽天天爽天天爽天天爽天天爽| 超碰猛烈的性猛交| 2017狠狠干| 亚洲欧美丁香五月天亚洲欧美| 狠狠色噜噜狠狠狠777奇米| 婷婷五月精品在线| 一级操逼大片| 五月婷婷综合激情网| 26UUU精品一区二区| 日韩中出视频| se99视频| Www99热| 99色在线| 91久久久久久久久18| 大香蕉五月婷婷| 热99在线精品| 91久久久久久久| 日韩综合网络男女香蕉a片| 亚洲婷婷基地| 亚洲午夜AV| 人妻操逼视频| 天天在线天天综合网色| 无码 av电影| 久久五月丁香综合17C| 亚洲最大成人综合网720P| 五月丁香六月日逼| 日韩无码成人电影| 亚州成人综合在线| 99操视频| 丁香五月另类色婷婷麻豆| 欧美碰碰| 26uuu精品一区二区| 性色婷婷| 伊人久久艹| 亚洲综合网激情小说| 日本少妇裸体做爰高潮片 | 四月婷婷丁香| 九九大香蕉黄色影院| www.精品99| 永久的网站AAAA | 激情图片婷婷| 天天天久久久| 五月天丁香婷婷久久九| 五月亭亭狠狠| 性爱动图国产麻豆一区二区三区 | 91chinese在线| 六月色色| 777色色色| 丁香花五月天激情| 国产乱妇乱子在线播视频播放网站| 天天拍久久| 婷婷综合在线视频| 五月天婷婷久久视频| 久久这有这里精品| 99热热热国产超碰| 99久热| 99久久九九| 香蕉操亚洲| 婷婷综合久久| 色综合另类| 色色综合成人网| 丁香婷婷五月色综合| 五月久久婷婷天堂视频| 婷婷六月综合在线| 五月天久久网站| 五月婷婷综合网| www.99成人视频| 91热久久| 玖玖热99| 另类少妇人与禽zOZZ0性伦| 激情性五月天免费小说视频| 国产激情综合| 操b视频在线观看一区二区| www色婷婷| 99精品久久久久久久婷婷久久| 91久久久久久久久| 天天射综合网夜夜操| 91超碰在线播放| 极品人妻VIDEOSSS人妻| 丁香九月婷婷综合| 热99AV网站| 色5在线| 99ri国产精品| 一区二区成人电影免费播放| 亚洲热综合| 五月天色影院| 精品久久久久久久久久久久人妻| av在线资源| 亚洲激情六月| 国产偷人爽久久久久久老妇APP| 大香蕉中文| 五月天激情子轮| 婷婷 久综合| 久久久久久久8| 婷婷综合九色伊人| 99在线精品免费视频| 激情綜合網址| 国产精品VA在线| 久久99久久99精品免视看婷婷| 99热在线中文字幕| 伊人五月天久久| 国产99久久久国产精品免费看 | 丁香六月在线| 97色色网| 亚洲成人在线五月天| 色婷婷丁香五月高清在线| 91青娱乐青青草| 97超喷视频在线观看| 国产乱人偷精品人妻A片| 97干97色| 五月婷精品| 天天干 夜夜爽| 色色网站免费观看| 六月丁香五月激情网| 激情综合4月| 二色av| 丁香六月激情| 欧日韩成人| 色人久夂| 五月婷婷激情久久| 日本激情91| 色色婷婷丁香五月天| 1024欧美看片| 琪琪色网址| 国产麻豆视频| 丁香婷婷狠狠97| 免费无码毛片一区二区A片 | 9久国产精品| 天堂久久性| 久久一级片| 色婷婷五月天无码视频| 九色PORNY在线精品酒店| 婷婷色资源| 精品视频二级九九| 婷婷激情社区| 99精品在线观看| 五月激情婷婷播播开心| 久久激情天堂| 久久综合爱| 狠狠干狠狠色| 91一起操| 人人色人人弄人人操| 99年操人人爽| 殴美97色| 色五月婷婷综合在线| 激情五月综合第一页| 久久精品系列| 精品久色| 五月天色婷婷图片| 99在线观看视频| 婷婷丁香小说| 激情综合婷婷| 少妇水多A片太爽了| 色色色五月天婷婷| 亚洲AV电影美洲AV电影| 欧美天堂久久| 丁香五月网络网络| 丁香五月婷在线| 五月婷婷在线免费观看 | 久久精品99久久久久久久久| 婷婷免费无马| 亚洲婷婷月丁香五月| 婷婷五月激情欧美大胆视频| 久久机热/这里只有精品| 久久激情五月| 能看的av网站| 五月天操逼激情| 色色婷婷色色| VA五月激情在线| 人妻操在线看| 久久久.COM| 午夜丁香婷婷| 9一精品视频观看| 91人人爽狠狠狠| 婷婷瑟五月天久久综合| 五月婷婷五月| 噼里啪啦完整版中文在线观看| 91热久88| 五月丁香啪啪| 色久五月天| 成人色色综合| 丁香婷婷色五月激情综合| 色欲天天综合网| 香蕉AV777XXX色综合一区| 97狠狠碰| 男人天堂亚洲综合| 97干视频在线| 久久九网| 五月丁香六月婷婷精品| 丁香五月婷中字幕| 五月丁香婷婷综合| 色五月激情综合| 91dy.av| 激情婷婷久久| 天天干天天av天天射| 在线成人网址| 热99只有里视频| 五月婷婷六月丁香综合在线| 激情碰碰碰| 五月天婷婷六月激情网| 五月天综合在线| 97色婷婷| 91婷婷| 激情六月日韩| 99热在线观看| 99热r| 久久婷婷综合五月天| 五月天啪啪| 久久色五月| 国语精品探花| 囯产精品久久欠久久久久久九大| 九九色影院| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 激情文学 综合 色| 91九色在线视频| 亚洲成AV人片在线观看| 五月丁香激情五月天| 久9热视频| 懂色av粉嫩AV蜜臀AV| 五月婷婷亚洲天堂激情在线| 夜夜躁婷婷AV| 人操人人| 色色五月婷婷丁香| 影音先锋高清无码资源网| www.激情.com.| 中文久久婷婷| 亚洲第二AV| 99秘 在线| 婷婷久久大香蕉| 久久精品亚洲热| 男人天堂 久久| 97久久婷婷色| 99热91| 亭亭五月丁香五月天激情| 国产美女无遮挡裸体毛片A片| 婷婷射图| 色播播五月天| 91热久| 26uuu欧美激情另类| 综合激情五月丁香| 激情小说五月天社区丁香| 少妇搡BBBB搡BBB搡毛茸茸 | 婷婷丁香www视频日本韩国| 另类小说五月天综合网| 少妇高潮呻吟A片免费看软件| 色噜噜综合网| 久热 91| 99WWW免费视频| 激情五月天无人视频在线| 婷婷99狠狠躁天天| 182tv992tv人之初午夜免费观看| 五月开心六月婷婷在线播放网站| 激情开心五月天| 色婷五月丁香久亚洲| 99热免费精品| 伊人久久大香线蕉av最新| 色五月在线观看| 丰满少妇猛烈A片免费看观看| 婷婷综合五月| 日韩无码专区| ay2区| 天天色视频| 99久久久国产大片| 激情五月天影院| 99热免费网站| 亚洲超碰在线| 《战争与艾拉》完整版| 国外亚洲成AV人片在线观看| www.色婷婷。com| 先锋影音av色五月天资源站| 亚洲AAA| 五月丁香婷婷狠狠操| 99热99这里免费的精品| 丁香深五月婷婷| 思思热99热| 激情久久 婷婷| 久婷婷婷| 色婷婷五月天亚洲 | 99九九热在线观看| 六月婷婷综合| 五月天色婷婷小说| 天天视频精品9| 色99自拍| 婷婷五月天电影网 | www.激情| 欧美综合婷婷网| 丁J香六月首页| 五月丁香综合网| 天天综合五月| 精品一二三区久久AAA片| 欧美色小说婷婷| 伊人久久大香线蕉综合网站| 丁香五月香蕉| 色月视频| 97超碰在线观看免费| 欧美婷婷丁香五月社区| 天天综合激情| 99热99精品在线观看| 日韩黄色电影| 五月丁香综合啪啪啪啪啪| 丁香五月婷婷av影院| WWW.桔色成人.COM| 五月丁香婷婷老司机| 婷婷五月,偷窥偷拍网| 五月丁香另类图片| 亚洲午夜成人av电影网| 日本欧美成人片AAAA| 中文字幕丰满乱孑伦无码专区 | 亚洲欧美综合7777色亭亭| 99爱视频在线| 五月婷六月综合在线观看| 婷婷五月在线影院| 色色色色色爱| 欧美日韩99| 久久99热这里只频精品6学生| 天天色综合图片| 色爱综合网| 成人国产欧美大片一区| 六月婷婷激情| 婷婷噜噜| 婷婷亚洲日本| 亚洲乱啪| 国产67194| 思思热精品在线视频| 成人AV在线网站| jiujiuxiangjiaowang| 91网站黄| www色婷婷| 99热99日…..| 99人人精品| 丁香六月婷| 99性爱视频| www天天干| 97人人干人人操| 人人操人人妻| 丁香九月激情| 9九色首页| 综合深爱五月| 99色在线视频观看| 天天插天天射天天干| 777影视理论片大全在线观看 | 天天日本夜夜谢| 亚洲色情激情丁香五月| 五月激情射| 国产三级在线播放| 国产精品国产成人国产三级| 婷婷香五月天| 亚洲VA在线| 九九热这里只有精品23| 五月婷婷婷综合网| 久久久久9久无码视频| 久久九九网| 在线观看亚洲视频影院| 日日夜夜狠狠操| 丁香花五月天| 天堂婷婷五月在线| 丁香色六月婷婷| 久久婷婷五月综合啪| 大香蕉 婷婷| 中文字幕日产A片在线看| 99热99干| 国产婷婷综合| 亚洲色婷婷五月天| 激情四射网| 五月天激情无码| 亚洲综合婷婷六月丁香五月| 色婷婷五月基地在线| 亚州激情网| 99精品久久久久久久婷婷| 91色逼| 91在线看免费 九九九九| 色爱爱综合网| 亚洲丁香花五月丁香花| 日本一级淫| 亚洲乱码日产精品BD| 婷婷六月色| 激情综合五月婷婷| 99性视频| 久久HD| 人人摸人人| 五月丁香六月成人| 久久久中文| 五月丁香婷婷综合网| 久久免费精彩视频| 九九精品亚洲| 99re最新地址| 天天夜夜爽| 婷婷五月播| 丁香五月天网站| 天天五月丁香五月| 久久五月视频| 精品人妻久久久| 欧美五月丁香在线观看| 五月丁香六月婷婷啪啪综合 | 五月激情四射婷婷丁香| 丁香五月激情六月欧亚激情综合导航 | 国产精品久久久久9999小说 | 91n网站cad入口在线观看| 丁J香六月首页| 色婷婷色和| 激情婷婷网| 亚洲综合在线播放| 狠狠色综合网| 五月激激网w'w'w| 五月丁香婷婷婷婷综合网| 五月丁香激情在线| 七七色色综合| 99ri精品视频在线观看| 夜夜夜天天操| 好好干av| 影音先锋777xfplay色资源网站| 开心五月网| 五月婷婷激情久久| 丁香五月久久| 久久婷婷丁香花综合网| 激情啪啪五月天| 99精品视频偷拍| 91精品电影18T| 五月天激情日色在线| 天天做天天爱天天要| 99这里有精品视频| AV性爱网| 激情人妻蜜夜系列区| 日韩精品一区二区刘| 五月天天堂久久| 国产永久一二一起草| 综合图区激情| 综合xx网| 丁香成人色情五月天| 99热99精品| 激情五月天婷婷| 国产jd1024基地手机看国产| 99热碰碰| 热久久99视频| 婷婷5月九九| 色五月综合激情| 国产又爽又猛又粗的视频A片| 激情五月天婷婷丁香| 国产综合色婷婷精品久久| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 很很干天天干| 久久人妻久久| 亲子乱AV-区二区三区| 26UUU欧美激情一区二区| 丁香五月第九色| 天天爱综合网| 久久久国产精品黄毛片| 91精品综合久久久五月天| 婷婷丁香五月天婷婷| 26uuu亚洲欧美| 丁香五月天啪啪| 少妇做爰免费视看片| 婷婷五月a| 国产老熟妇亲子乱对白| 精品视频网| 99操免费视频| 999热在线观看视频| 六月丁香婷婷六月激情综合| 丁香五月中文字幕| 一级AV片| 五月开心婷婷极品激情| 婷婷六月五月天综合| 五月天另类小说| 色吊操色妞| 色色99色色| 天天综合精品| 亚洲AV成人一区二区在线观看| 色六月婷婷| 精品五月天| 91色综合| 99色免费| 日日做天天操夜夜爽| www.yw尤物| 日本三级毛片| 久久丁香五月婷婷| 91精品久久久久久综合五月天| 九九热99精品| 人人看人人要| 思思99热| 99久久综合网| 五月激情婷婷国产精品久久久久久| 欧美成人精品A片免费一区99| 色九月婷婷丁香| www.色色色色| 国产真实乱了老女人视频| 好好干Av| 色婷婷免费观看| 色五月婷婷1| 日批在线看| 狠狠穞A片一區二區三區| 超碰日日操| 26uuu在线观看| 9色天堂| 99热综合在线观看| 777精品久无码人妻蜜桃| 免费观看亚洲AV片| 99啪| 久久九九国产| 99无码| 久久全色| 开心深爱激情网| 婷婷五月欧美AA片免费| 亚洲色a| 综合AV网| 激情五月天啪啪| 极品人妻VIDEOSSS人妻| 亚洲无码成人网| 天天干天天干天天| 五月色色色| 色五月色五天色情网| 铁牛TV人妻| 激情四射婷婷| ...婷婷五月综合不卡,国产在线手机| 狠狠色综合网站| 婷婷五月欧美综合| 中文字幕簧片| 激情综合网激情五月婷婷| 五月婷婷视频啪啪美女| 亚洲爆乳无码精品AAA片蜜桃| 99久久综合网| 色色色综合| 另类五月婷婷| 丁香婷婷综合激情五月色| 激情黄色五月天| 第九色区av天堂| 开心五月激情站| 亚洲经典三级| 婷婷五月天激情综合网| 五月激情四射网站| 五月天婷婷在线AN| 久草五月婷| 五月婷激情影院| 先锋五月婷婷丁香草草| 六月丁香五月天| 亚洲综合网在线| 深爱激情九九五月天 | 九月激情综合婷婷| 色99在线观看| 玖玖综合色| 五月婷婷综合在线| 无码激情精品色婷婷久久久久 | 激情五月天啪啪| 国产在线激情视频| 激情色色色| 色人久夂| 五月婷视频| 日日干夜夜撸夜夜骑| 亚洲色99综合天堂| 99热这里只有精品4| a九九热www| 啪啪啪综合网| 这里只有精品在线看| 97热九九| 亚洲激情五月| 五月WWW| 五月花激情网| 99这里| 婷婷五月综合视频| 人人搡人人| 99视频久久| 5月婷婷六月丁香| 97超级碰碰碰| 在线日韩视频| 国产精品激情五月天色婷婷| 五月婷婷|欧美| 思思热这里只有精品| 思思re视频在线| 婷婷玖玖丁香| 超碰在线99| av中文网站| 91狠狠综合久久| 久久婷婷原创视频| 五月婷婷深深爱| 五月丁香999| 激情五月天福利| 狠狠插狠狠插| 六月丁香婷婷开心综合基地| 美腿丝袜AV天堂网| 五月天开心网| 亚洲色在线观看| 丁香五月综合色婷婷| 青青久久五月天丁香婷婷| 亚洲av免费在线| 亚洲情a| 亚洲天堂热| 天天久久婷婷| 996er热| 激情五月天偷拍综合网| 五月婷婷影院| 91伦| 国内外色色色色色成人视频| 五月婷婷激情综合网 | 秋霞丝袜啪啪啪| 久久精品综合色| 五月婷婷激情中文字幕| 亚洲激情高潮| 99热综合色图| 97色 五月天丁香| 五月天狠狠| 色五月天在线观看| www.五月天性.com| 97久操视频| 超PEN精品在线| 日本三级日本三级99| 五月色天情| 丁香五月婷婷精品视频| 天天操婷婷| 婷婷碰碰| 婷婷五月婷婷| 99热免费在线| 丁香六月婷婷综合网| 亚洲黄色影视| 99资源人人| 久久综合婷婷激情| 日韩啪啪网| 五月婷婷丁香啪啪| 天天爽,夜夜爽| 97色色色| 精品久久久91久久影视网| 日本美女上人| nvrentiantang av| 亚洲 综合中文| 99热主页日本| www.99热这里精品| 色婷婷五月天av在线| 大香蕉久| 成人五月天色天堂| 色婷婷五月视频| 天天爽成人综合网站| 伊人玖玖精品| 色婷婷综合影院| 99热最新国内| 97超碰婷婷五月天| 五月激情网五月综合网| 久久九九爽| 5月丁香啪啪啪| 精品无码视频| 婷婷色播综合五月| 99惹| 超碰av在线| 99re热精品在线视频| 亚洲成人av在线| CAoub青青超碰| 九九热在线视频观看免费10| 大香伊人久色| 中文字幕无线久必| 亚洲精品午夜国产va久久成人| 99人这里只有精品| 丁香五月婷婷性爱| 婷婷色色五月天| 色吧综合网| 丁香五月激情六月欧亚激情综合导航| 91精品91久久久中77777久久玖玖九九| 五月激情综合性爱| 欧美日韩成人高清在线| 婷婷丁香五月天大香蕉| 大香蕉啪啪啪| www九九热| 色5月婷婷色| 久久久无码精品成人A片小说| 久久五月综合| 日日夜夜狠狠| 久久538| 一级二级色大片| 六月婷婷久久| 五月婷婷熟女| 五月天婷婷丁香| 狠狠穞A片一區二區三區| 色五月激情网| 人妻内射一区二区在线视频| 精品一区二区三区免费毛片爱| 亚洲视频在线观看| seuuu婷婷| 婷婷不卡基地| 成年视频免费观看| 欧美成人日韩| Av大香蕉| 亚洲婷婷月丁香五月| 五月天成人网婷婷| 五月网网站| 激情五月影院| 天天插天天爽| 亚洲日日操| 亚洲色网络| 日本黄 色 片| 五月婷婷色色网址| 在线视频99| 久久五月天大美女| 在线A色| 六月丁香激情综合| 五月丁香亭亭| 欧美色色色色色| EEUSS鲁片一区二区三区| 丁香五月天大香蕉啪啪| 99久久五月婷婷| 人人操AV| 五月丁激情| 婷婷激情五月综合| 色五月激情网| 99国产精品久久久久久久久久久 | 亚洲av综合在线| 五月丁香六月激情| 成人综合视频在线| 五月丁了香蕉综合| www.sezonghe| 一本久道综合色婷婷五月| 极品人妻VIDEOSSS人妻| 色婷婷影视99| 激情深爱五月婷婷| 五月 婷婷 成人| 日韩AV片| 色综合久久之分久久| 99热天堂| 亚洲激情网站无码| 亚洲最大激情无码| 91九色网| 超级碰碰视频无码| 婷婷激情五月天7| 深爱五月激情| 丁香婷婷六月| 日本三级色| 久热2025无码| 亚洲激情五月天| 一本道在线电影| 大香蕉久久婷婷| 色小说婷婷五月天天天| WWW免费视频碰碰碰碰| 26uuu精品国产| 99久久五月婷婷| 超黄亚洲瑟瑟网站| 欧美日本另类| 99婷婷精品推荐在线视频| 久99久精品| 丁香婷婷啪啪啪| 婷婷网五月天| 日韩久综合| 成人五月丁香社区| 狠狠激情五月天| 99这里只有精品| 9l视频自拍九色9l黑人| 综合久久婷婷五月丁香| www,com,五月色色| 久久精品A片777777| 日韩成人无码人妻| 天天狠狠夜夜狠狠2023| 26UUU欧美| 天堂色色色| dingxiangtingtingliuyue| 激情五月天婷婷| 在线看片h站| 天天婷婷综合亚洲亚洲| 中字幕视频在线永久在线观看免费| 婷婷欧美综合| 色色射| 中字幕视频在线永久在线观看免费 | 97人人草| 丁香五月婷婷亚洲综合精品| 五月香六月婷| 欧洲色区| 快乐激情五月色婷婷| 婷婷六月天激情| 操操综合网婷婷| 亚洲狠狠狠色婷婷综合激情久久久| 久久综合影院| 91熟妇大香蕉| 26UUU精品一区二区c〇m| 色婷婷在线综合色播网| 五月婷婷婷综合网| 色女伊人| 婷婷五月丁香图片人人操| 九九精品热| 碰超99| 久久图色4| 色色综合视频| 婷婷五月欧美综合| AV五月丁香| 五月天婷婷色综合| 五月丁香亭亭操逼| 开心激情站| 天天日P天天射P| 五月婷婷婷自由综合| 久久97久久99久久综合欧美| 综合婷婷六月| 美女五月天| 五月丁香六月婷| 亚洲综合色色| 任你操精品免费| 亚洲性视频| 激情久久久久久久久| 久久婷婷综合五月趴| 婷综合六月| 婷婷综合五月天亚洲综合| 婷婷久久五月| 99在线免费视| 婷婷五月天综合网| 丁香五月婷婷姐| 五月天激情四射| 天天上天天爽| 久久er99热精品一区二区 | 婷婷丁香亚洲色综合91| 丁香 久久| 九色 在线| 五月丁香婷婷综合久久| 六月婷婷激情图片| 色五月婷婷久久| 五月婷婷色色色| 成人丁香五月| 九九综合精品| 国产看真人毛片爱做A片| 99热这里只有在线播放| 久操欧美在线观看97| 五月婷婷婷综合网| 日韩操人| 天天综合久久| 五月婷婷婷综合网| 操97| 五月激情丁香五月| 综合色播| 99亚洲综合| 96丁香六月婷婷蜜桃综合久久| 婷婷五月天成人网| 日产精品一线二线三线芒果| 免费久久这里只有精品99| 碰97 久| 天天操夜夜橾| 亚洲精品视频电影| 午夜色丁香| 五月天丁香婷婷社区| 亚洲色在线观看| 色五月av伊人| 婷婷丁香五月天综合在线日韩| 五月丁香六月婷婷国产视频| 九九热99视频在线| 亚洲婷婷五月天| 夜夜夜天天操| tingtingcaobi| 国产亚洲色婷婷久久99精品91| 久久精品系列| 成人片在线播放| 婷婷五月天激情五月天网站| 九伊人网| 97AV在线视频| 五月丁香婷婷久久| 一区二区三区四区牛| 婷婷婷久久久| 欧洲亚洲最新精品| 丁香婷婷综合色五月激情国产基地| 婷婷色情网| WWW丁香五月| 色都都狠狠色都都色综合色| 成人av在线网址| 丁香婷婷久久激情| 91免费试看| 激情色色| 中文字幕性爱丰满| 亚洲va久久久噜噜噜久久天堂| 狼人婷婷综合| 天天噪夜夜爽| 色色色在线观看| 久久性视频| 日日色综合| 亚洲丁香五月天在线视频| 97日本在线| 色婷婷五月天| 激情网五月|