日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

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

四端IM源碼落地:消息鏈路、多端同步與二開驗(yàn)收 簡介面向具備一定開發(fā)基礎(chǔ)、希望自建即時(shí)通訊系統(tǒng)的團(tuán)隊(duì)與個(gè)人提供一套2024年親測可搭建的視酷酷信IM源碼覆蓋安卓、蘋果、PC與Web四端互通并附教程與解析材料便于理解整體架構(gòu)、部署流程及二次開發(fā)方向。壓縮包共9個(gè)文件以6個(gè)txt源碼解析和說明、1個(gè)doc文檔、1個(gè)html頁面及1張jpg圖片為主整體約99KB內(nèi)容側(cè)重四端互通實(shí)現(xiàn)、基于tio通信技術(shù)的方案說明與Linux/CentOS部署要點(diǎn)。已有500人瀏覽學(xué)習(xí)。讀者可據(jù)此梳理Java、OC、C#、vue多語言客戶端與服務(wù)端結(jié)構(gòu)參考MongoDB存儲、單機(jī)萬人并發(fā)及集群擴(kuò)展思路并圍繞商城等模塊進(jìn)行二開評估文檔還涉及強(qiáng)拖與雙空間切換等實(shí)現(xiàn)解析適合作為自建IM項(xiàng)目的技術(shù)選型與搭建參考。1. 拿到四端 IM 源碼先別急著跑從一條消息鏈路判斷能不能落地如果你在 Safari 里打開 Web 端消息能發(fā)出去但對方頭像不刷新這套四端 IM 源碼包就值得先拆鏈路再談部署。它給的是即時(shí)通訊系統(tǒng)的整包源碼和搭建教程賬號、會話、消息、離線、多端同步這些基礎(chǔ)件都在適合有技術(shù)能力、準(zhǔn)備二次開發(fā)加商城或做私有化溝通模塊的團(tuán)隊(duì)。重點(diǎn)不是“能不能啟動”而是登錄態(tài)、消息序號、離線補(bǔ)償在四端是否一致先驗(yàn)證四端互通再決定改哪里。別把它當(dāng)一鍵安裝包先按一條消息從發(fā)送到落庫、再到另一端點(diǎn)亮的路徑走一遍。2. 拆清四端互通賬號、會話、消息三條主線怎么落到源碼目錄這套源碼包的價(jià)值不在“端多”而在四端共用同一套賬號、會話和消息語義。很多團(tuán)隊(duì)拿到包后第一件事是找啟動腳本結(jié)果服務(wù)起來了Web 端能發(fā)文字桌面端收不到移動端未讀數(shù)對不上最后又回頭猜協(xié)議。我一般會先把源碼目錄按“入口、協(xié)議、存儲、客戶端”四塊切開再按一條消息的生命周期做驗(yàn)收不先改 UI也不先接商城。2.1 先定協(xié)議邊界四端不是四套邏輯四端互通最常見的誤區(qū)是把桌面端、Web 端、移動端 A、移動端 B 當(dāng)成四個(gè)獨(dú)立項(xiàng)目。實(shí)際能跑通的 IM 源碼包通常會把登錄鑒權(quán)、會話列表、消息收發(fā)、已讀回執(zhí)、離線補(bǔ)償放在公共服務(wù)端客戶端只負(fù)責(zé)連接、渲染和本地緩存。你要找的不是“哪個(gè)頁面好看”而是 WebSocket 握手入口、HTTP 登錄接口、消息落庫點(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控制掃描深度避免一上來把依賴目錄全翻出來-iname不區(qū)分大小寫適合源碼包命名不統(tǒng)一的場景head -80是防止輸出太長先看命名密度。掃完后把命中文件按“連接層、消息層、存儲層”貼標(biāo)簽后面改任何功能都從這三層找落點(diǎn)不要直接改客戶端頁面。四端驗(yàn)收時(shí)我會先做一張最小對照表不追求功能全只追求語義一致端先看什么最小驗(yàn)收點(diǎn)Web 端登錄態(tài)存儲、WebSocket 重連刷新頁面后會話不丟Safari 下能收到在線消息桌面端本地緩存、窗口切換切到后臺再回來未讀數(shù)不重復(fù)累加移動端 A前后臺切換、離線拉取殺進(jìn)程后重進(jìn)能補(bǔ)到斷線期間的消息移動端 B多設(shè)備登錄、踢線策略同賬號兩端在線時(shí)消息序號不交叉這張表不是產(chǎn)品需求而是拆包順序。只要其中一端出現(xiàn)“消息到了但會話沒更新”就回到服務(wù)端看消息落庫和會話摘要是不是兩個(gè)事務(wù)只要出現(xiàn)“兩端順序不同”就回到消息序號和客戶端排序邏輯。四端互通不是四個(gè)客戶端各自修而是公共服務(wù)端的語義先統(tǒng)一。2.2 啟動順序先服務(wù)端健康檢查再客戶端聯(lián)調(diào)源碼包帶教程是好事但教程通常寫“先安裝依賴再啟動服務(wù)”不會告訴你失敗時(shí)先看哪一層。我的順序是先看運(yùn)行環(huán)境要求再起服務(wù)端再做 HTTP 健康檢查最后才開客戶端。不要一上來四端全開否則日志會混在一起出了問題不知道是連接層還是業(yè)務(wù)層。先按包內(nèi)說明確認(rèn)運(yùn)行環(huán)境不要盲目升級大版本。很多 IM 源碼包對運(yùn)行時(shí)版本有隱含要求尤其是 WebSocket 庫和加密庫升級后握手失敗很常見。cd 源碼目錄 # 先看教程和配置文件確認(rèn)端口、數(shù)據(jù)庫、緩存、上傳目錄 ls -la find . -maxdepth 2 \( -iname readme* -o -iname *.env* -o -iname *config* \) -print | head -60 # 按包內(nèi)教程啟動服務(wù)端下面用占位腳本表示換成實(shí)際入口 bash ./scripts/start-server.shls -la先看有沒有隱藏的環(huán)境文件find只找教程和配置不碰業(yè)務(wù)代碼start-server.sh是占位實(shí)際以包內(nèi)教程為準(zhǔn)。啟動后不要急著登錄先用 HTTP 請求確認(rèn)服務(wù)端活著# 健康檢查端口從 .env 或教程里取 curl -i http://127.0.0.1:端口/health # 如果源碼沒有 /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 只能說明進(jìn)程在不代表 WebSocket 可用登錄接口返回 token 才能進(jìn)入下一層。-i是為了看響應(yīng)頭尤其是內(nèi)容類型和跨域頭如果登錄接口返回 HTML 錯(cuò)誤頁說明路由沒命中或偽靜態(tài)沒配好先別懷疑客戶端。拿到 token 后再測 WebSocket 握手命令里的路徑和參數(shù)名按源碼實(shí)際接口替換# 用最小 WebSocket 客戶端驗(yàn)證握手和一條回環(huán)消息 npx wscat -c ws://127.0.0.1:端口/im?token登錄返回的token握手成功后再發(fā)一條最小 JSON不要一上來發(fā)圖片。消息體字段按源碼協(xié)議替換但至少要包含type、convId、clientSeq、body。如果握手失敗看反向代理是否轉(zhuǎn)發(fā)了 Upgrade 頭如果握手成功但發(fā)消息斷開看服務(wù)端是否校驗(yàn)了 Origin 或 token 過期時(shí)間。2.3 數(shù)據(jù)表與消息 ID先保證能對上再談性能IM 源碼包最容易讓人誤判的地方是“消息發(fā)出去了”不等于“消息可追蹤”。四端互通必須有三個(gè)標(biāo)識消息 ID、客戶端序號、服務(wù)端序號。消息 ID 用來去重客戶端序號用來防止弱網(wǎng)重發(fā)造成重復(fù)服務(wù)端序號用來給會話內(nèi)消息排序。很多包只做了消息 ID結(jié)果一端重連后重復(fù)拉取未讀數(shù)就翻倍。我不會直接改原表而是先加一張校驗(yàn)表或臨時(shí)表把一條消息的軌跡記下來。字段名按源碼實(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ù)端在會話內(nèi)分配客戶端只按它排序不自己造順序conv_id要能區(qū)分單聊和群聊。聯(lián)調(diào)時(shí)每發(fā)一條消息就寫一條校驗(yàn)記錄四端收到的msg_id、server_seq必須能對上對不上就查網(wǎng)關(guān)是否重試、客戶端是否重發(fā)、服務(wù)端是否分配了兩套序號。提示校驗(yàn)表只用于聯(lián)調(diào)不要留在生產(chǎn)庫但索引設(shè)計(jì)要保留思路消息去重和會話排序都靠這幾個(gè)字段。3. 登錄到離線消息四端互通的三個(gè)狀態(tài)機(jī)別寫亂四端 IM 的穩(wěn)定性很多時(shí)候不是協(xié)議多復(fù)雜而是三個(gè)狀態(tài)機(jī)沒對齊登錄態(tài)、會話已讀態(tài)、離線補(bǔ)償態(tài)。登錄態(tài)決定誰能連上來會話已讀態(tài)決定未讀數(shù)怎么算離線補(bǔ)償態(tài)決定斷線期間的消息怎么補(bǔ)。這三個(gè)狀態(tài)只要有一個(gè)在四端實(shí)現(xiàn)不同用戶就會看到“消息發(fā)了但紅點(diǎn)不消”“換端后已讀回到未讀”“離線消息重復(fù)三遍”這類玄學(xué)問題。3.1 登錄態(tài)token、設(shè)備號、踢線策略要一起落登錄不是拿到 token 就結(jié)束。四端互通至少要有uid、deviceId、token、lastSeq四個(gè)本地狀態(tài)。deviceId要穩(wěn)定不能每次刷新都變否則服務(wù)端會把同一臺設(shè)備當(dāng)成新設(shè)備離線消息重復(fù)推送lastSeq是會話級增量拉取的游標(biāo)不能只存在內(nèi)存里。下面這段客戶端邏輯只做本地會話落盤不依賴具體框架// 登錄成功后落本地會話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è)置過期時(shí)間不能永久有效。踢線策略要明確同賬號同端互踢還是同賬號多端共存。多端共存時(shí)服務(wù)端要給每個(gè)設(shè)備單獨(dú)維護(hù)在線狀態(tài)消息回執(zhí)要帶上設(shè)備號否則 A 端讀了消息B 端的未讀數(shù)也會被清掉。登錄接口返回后先調(diào)一次“當(dāng)前用戶信息”和“會話列表”接口確認(rèn) token 在 HTTP 和 WebSocket 兩條鏈路上都有效。很多包只校驗(yàn) HTTP不校驗(yàn) WebSocket 握手結(jié)果 token 過期后 HTTP 401WebSocket 還掛著客戶端以為在線實(shí)際發(fā)不出消息。聯(lián)調(diào)時(shí)把 token 過期時(shí)間調(diào)短觀察重連和刷新邏輯比上線后才發(fā)現(xiàn)強(qiáng)。3.2 會話與已讀未讀數(shù)不是簡單加一未讀數(shù)是最容易在四端之間打架的字段。單端在線時(shí)“收到消息加一、打開會話清零”看起來沒問題多端在線后A 端打開會話B 端還顯示紅點(diǎn)用戶就會認(rèn)為消息沒同步。常見做法是把已讀回執(zhí)做成獨(dú)立事件不直接改消息表而是記錄“哪個(gè)用戶、哪個(gè)會話、讀到哪個(gè) serverSeq”。會話列表的未讀數(shù)由服務(wù)端按lastReadSeq和maxSeq計(jì)算客戶端只做展示緩存。下面這段發(fā)送邏輯把clientSeq落盤目的是弱網(wǎng)重發(fā)時(shí)服務(wù)端能識別重復(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ù)端會話 ID不要用對方 uid 拼ts只做展示參考排序以服務(wù)端serverSeq為準(zhǔn)。服務(wù)端收到后先按from_uid clientSeq去重再分配serverSeq最后寫消息表和會話摘要。會話摘要里的maxSeq只能增不能減已讀回執(zhí)里的lastReadSeq也只能增不能減這兩個(gè)單調(diào)性一旦破壞四端未讀數(shù)就會來回跳。已讀回執(zhí)還要區(qū)分“會話已讀”和“消息已讀”。單聊里兩者差別不大群聊里差很多用戶打開群會話不代表每條消息都讀了。源碼包如果只有會話級已讀二開做商城客服時(shí)就會遇到“用戶點(diǎn)進(jìn)會話但沒看訂單卡片”的爭議。我的做法是先保留源碼原有已讀模型再在業(yè)務(wù)層加消息級回執(zhí)不直接改底層消息表。3.3 離線消息與補(bǔ)償窗口別用“全量拉取”糊弄離線消息是四端互通的血淚區(qū)??蛻舳藬嗑€后重連服務(wù)端要告訴它“從哪個(gè)序號開始補(bǔ)”。常見錯(cuò)誤是每次重連都拉最近 100 條結(jié)果重復(fù)消息一大堆更糟的是只拉在線期間的消息用戶切后臺十分鐘回來發(fā)現(xiàn)中間消息沒了。正確做法是客戶端帶lastSeq服務(wù)端按會話返回serverSeq lastSeq的消息并限制單次條數(shù)客戶端收到后更新lastSeq。-- 按會話增量拉取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 ?里的問號是客戶端上次確認(rèn)的最大序號LIMIT 200是補(bǔ)償窗口不要一次拉全量。客戶端拉完后不要立刻把lastSeq推到最新要先確認(rèn)本地已落庫或已渲染再更新游標(biāo)。否則渲染失敗一次游標(biāo)已經(jīng)前移消息就永久丟了。補(bǔ)償窗口還要和推送配合。離線推送只負(fù)責(zé)“叫醒”不負(fù)責(zé)“送完整消息”用戶點(diǎn)開推送后客戶端仍然要走增量拉取。很多包把推送內(nèi)容當(dāng)消息本體結(jié)果推送到了但會話列表沒更新用戶點(diǎn)進(jìn)去還要等半天。聯(lián)調(diào)時(shí)把網(wǎng)絡(luò)斷開 30 秒發(fā) 5 條文字和 1 張圖片再恢復(fù)網(wǎng)絡(luò)檢查四端是否都只出現(xiàn)一次、順序一致、未讀數(shù)正確。這個(gè)場景比壓測更能暴露狀態(tài)機(jī)問題。4. 二次開發(fā)加商城先給 IM 源碼劃出可擴(kuò)展縫標(biāo)題里寫支持二次開發(fā)、可以加商城這個(gè)方向是合理的但前提是別把商城邏輯塞進(jìn)消息核心。IM 源碼包最怕二開時(shí)直接改消息表、改會話表、改登錄表短期能跑后面每加一個(gè)業(yè)務(wù)消息就崩一次。我一般會把擴(kuò)展點(diǎn)分成三類消息類型擴(kuò)展、用戶體系映射、業(yè)務(wù)事件旁路。商城只掛在旁路上不碰會話狀態(tài)機(jī)。4.1 消息類型擴(kuò)展別改核心 switch文字、圖片、語音、文件是 IM 的基礎(chǔ)消息類型商城訂單卡片、優(yōu)惠券、物流提醒屬于業(yè)務(wù)消息。很多源碼包用一個(gè)大switch處理所有類型二開時(shí)每加一種就改一次核心文件沖突概率很高。更穩(wěn)的做法是保留核心switch只做分發(fā)業(yè)務(wù)類型注冊到獨(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ù)、不改會話順序renderUnsupported要兜底避免新客戶端收到舊服務(wù)端不認(rèn)識的消息就白屏。服務(wù)端也要有對應(yīng)的消息類型白名單不能客戶端傳什么就存什么否則二開接口會變成任意 JSON 存儲。業(yè)務(wù)消息的落庫策略要和普通消息分開。訂單卡片可以只存業(yè)務(wù) ID 和快照不存整段 HTML物流提醒可以存模板參數(shù)客戶端按版本渲染。這樣商城改版時(shí)不用回刷歷史消息老客戶端也能顯示降級文案。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è)商城用戶不會被兩個(gè) IM 賬號綁定created_at用毫秒時(shí)間戳方便排查綁定順序。綁定動作要冪等重復(fù)提交返回同一條記錄不要報(bào)唯一鍵沖突給前端。商城下單消息通過mall_uid查im_uid再走 IM 消息通道發(fā)送IM 側(cè)不感知訂單金額和支付狀態(tài)。4.3 教程怎么用把步驟轉(zhuǎn)成驗(yàn)收清單包內(nèi)教程要當(dāng)成“啟動參考”不能當(dāng)成“驗(yàn)收標(biāo)準(zhǔn)”。教程能讓你把服務(wù)跑起來但四端互通、離線補(bǔ)償、二開擴(kuò)展這些點(diǎn)教程通常只寫一半。我的做法是把教程里的每一步轉(zhuǎn)成一條可觀察結(jié)果配完數(shù)據(jù)庫看表是否建全啟動服務(wù)看健康檢查是否返回登錄成功看 token 是否能用于 WebSocket發(fā)一條消息看四端是否都收到同一個(gè)msg_id。源碼包聲稱沒有后門這個(gè)口號不能替代檢查。上線前至少做三件事搜危險(xiǎn)函數(shù)、看外鏈請求、查定時(shí)任務(wù)和啟動腳本。下面這組命令只做靜態(tài)排查命中不等于有問題但必須逐條解釋cd 源碼目錄 # 搜常見危險(xiǎn)調(diào)用按語言調(diào)整擴(kuò)展名 grep -RInE eval\(|base64_decode\(|shell_exec\(|exec\(|system\( . \ --include*.php --include*.js --include*.java | head -60 # 看啟動腳本和定時(shí)任務(wù)確認(rèn)沒有多余外聯(lián) find . -maxdepth 4 \( -name *.sh -o -name *.bat -o -name crontab* \) -print | head -40grep的-R遞歸、-I跳過二進(jìn)制、-n顯示行號、-E支持?jǐn)U展正則head -60防止刷屏。命中eval不一定是后門可能是模板引擎或配置解析但要能說清楚輸入來源。啟動腳本重點(diǎn)看有沒有下載遠(yuǎn)程文件、寫入系統(tǒng)目錄、添加計(jì)劃任務(wù)。檢查完再做一次斷網(wǎng)啟動看服務(wù)是否仍然能起來依賴遠(yuǎn)程鑒權(quán)的包在斷網(wǎng)時(shí)會暴露問題。5. 避坑排查四端 IM 聯(lián)調(diào)最常翻車的 5 個(gè)現(xiàn)場四端 IM 的問題很少是“代碼完全不會寫”更多是環(huán)境、協(xié)議、緩存和瀏覽器差異疊在一起。下面這 5 個(gè)現(xiàn)場是我拆這類源碼包時(shí)最常遇到的按“現(xiàn)象 → 原因 → 解決”記錄方便你對著日志查。5.1 登錄成功但 WebSocket 立刻斷開現(xiàn)象HTTP 登錄返回 200token 也拿到了客戶端一連 WebSocket 就斷開服務(wù)端日志只有一條握手記錄。原因通常是反向代理沒有轉(zhuǎn)發(fā)Upgrade和Connection頭或者服務(wù)端校驗(yàn)了Origin而 Web 端域名不在白名單。也有可能是 token 放在 query 里被網(wǎng)關(guān)過濾握手階段拿不到用戶身份。先分層查不要直接改客戶端重連邏輯# 先確認(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 說明路徑被重寫返回 400 看Sec-WebSocket-Key和版本頭返回 403 看 Origin 白名單。解決方式是把 WebSocket 路徑從靜態(tài)資源規(guī)則里排除反向代理單獨(dú)加 Upgrade 轉(zhuǎn)發(fā)服務(wù)端把 Web 端域名加入白名單。改完再測 Safari因?yàn)?Safari 對混合內(nèi)容和連接復(fù)用更敏感。5.2 同一賬號兩端消息順序不一致現(xiàn)象A 端先發(fā)“1”再發(fā)“2”B 端先看到“2”再看到“1”刷新后又恢復(fù)正常。原因通常是客戶端按本地時(shí)間排序而兩端時(shí)鐘不一致或者服務(wù)端把消息寫入和會話摘要更新放在兩個(gè)異步隊(duì)列里推送順序和落庫順序不一致。還有一種是重發(fā)時(shí)clientSeq重置服務(wù)端去了重但分配了新的serverSeq。解決思路是統(tǒng)一排序源客戶端只按服務(wù)端serverSeq升序渲染本地時(shí)間只做展示服務(wù)端在會話維度串行分配序號至少保證同一會話內(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 里只顯示占位圖控制臺報(bào)內(nèi)容類型或跨域錯(cuò)誤。原因常見有三種上傳接口返回的Content-Type是application/octet-stream圖片域名和 Web 端域名不同但響應(yīng)頭缺少允許跨域讀取的配置圖片是混合內(nèi)容頁面 HTTPS 而圖片地址是 HTTP。Safari 對這幾類問題比其它瀏覽器更嚴(yán)格。先直接看響應(yīng)頭不要只看頁面curl -I https://你的域名/upload/示例圖片.jpg重點(diǎn)看Content-Type是否為image/jpeg或image/pngContent-Length是否存在跨域時(shí)看Access-Control-Allow-Origin。解決方式是在上傳服務(wù)端按擴(kuò)展名或文件頭寫正確類型圖片域名統(tǒng)一走 HTTPS跨域讀取按需加允許頭。不要用前端 base64 硬轉(zhuǎn)大圖會把消息體撐爆。5.4 離線消息重復(fù)或丟失現(xiàn)象斷網(wǎng) 30 秒再恢復(fù)同一句話出現(xiàn)兩次或者切后臺十分鐘回來發(fā)現(xiàn)中間幾條消息沒了。重復(fù)通常是客戶端重發(fā)時(shí)clientSeq沒落盤或者服務(wù)端去重鍵只用了msg_id重發(fā)生成了新msg_id。丟失通常是客戶端先更新lastSeq再渲染渲染失敗后游標(biāo)已經(jīng)前移也可能是服務(wù)端增量查詢用了而不是邊界消息被跳過。解決方式客戶端發(fā)送前先落clientSeq服務(wù)端用from_uid clientSeq做唯一約束拉取離線消息用server_seq lastSeq拉完先落本地再更新游標(biāo)服務(wù)端返回消息時(shí)帶maxSeq客戶端用它校準(zhǔn)本地游標(biāo)但不要直接跳過去。聯(lián)調(diào)時(shí)專門發(fā)一條邊界消息斷開、重連、再拉取確認(rèn)這條消息只出現(xiàn)一次。5.5 “無后門”檢查只看壓縮包目錄現(xiàn)象解壓后沒看到可疑文件就認(rèn)為源碼安全上線后服務(wù)端出現(xiàn)陌生外聯(lián)請求。原因可能是后門不在業(yè)務(wù)目錄而在依賴包、啟動腳本、定時(shí)任務(wù)或前端靜態(tài)資源里也可能是構(gòu)建時(shí)從遠(yuǎn)程拉取了被篡改的依賴。只看目錄結(jié)構(gòu)發(fā)現(xià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í)行等組合。命中后逐條看輸入來源尤其是啟動時(shí)執(zhí)行的腳本。更穩(wěn)的做法是在隔離環(huán)境斷網(wǎng)啟動觀察是否有外聯(lián)再把前端靜態(tài)資源做一次構(gòu)建產(chǎn)物對比確認(rèn)沒有多余腳本。源碼包說無后門只能作為線索不能作為驗(yàn)收結(jié)論。6. 上線前的一條消息追蹤把四端互通驗(yàn)收成可復(fù)現(xiàn)記錄上線前我不會只看“四端都能發(fā)消息”而是選一條消息做全鏈路追蹤把每個(gè)節(jié)點(diǎn)的字段記下來。文字消息選一條帶clientSeq的圖片消息選一條帶上傳文件的再選一條離線期間發(fā)送的三條就夠暴露大部分問題。檢查點(diǎn)記錄字段通過標(biāo)準(zhǔn)客戶端發(fā)送uid、deviceId、clientSeq、convId同一設(shè)備重啟后clientSeq不回退服務(wù)端落庫msg_id、serverSeq、created_at同一會話內(nèi)serverSeq單調(diào)遞增在線推送接收端msg_id、serverSeq四端收到的msg_id一致順序一致離線補(bǔ)償lastSeq、拉取條數(shù)、maxSeq斷線期間消息只補(bǔ)一次不丟不重已讀回執(zhí)lastReadSeq、設(shè)備號一端已讀后另一端未讀數(shù)按規(guī)則變化這張表我會在聯(lián)調(diào)環(huán)境跑三遍正常網(wǎng)絡(luò)、斷網(wǎng) 30 秒、切換前后臺。每遍只改一個(gè)變量記錄服務(wù)端日志和客戶端本地存儲。只要有一條對不上就先停二開不要用“再發(fā)一次看看”糊過去。從那以后我每次拿到這類 IM 源碼包都先跑這條消息追蹤再談商城和上線。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
午夜一级免费毛片| 91国产精品在线看| 狠狠操一区二区| 精品人妻丰满熟妇一区二区三| 色操逼网| 欧洲乱码一区二区| 国产操逼网站亚洲一级黄色| 狠狠操天天干| 成人在线永久| 18啪啪手机免费性爱| 婷婷日韩一区二区三区中文字幕在线| 天天爽入口| 国产高清免费不卡av| 欧美成不卡网| 国产一区二区a毛片| 日本在线视频导航| www.av不卡中文字幕| 成年人网站在线免费观看| 午夜婷婷| 欧美综合第一页| 懂色AV蜜臀无码精品APP| 97天天操天天干| 亚洲丝袜少妇在线| 人人妻人人操人人乐| 日韩色香| 天天综合AV| 麻豆色约约| 91强热人妻| 99福利社| 蜜臀久久99精品久久综合| 美女91网| 中亚av| 男人综合网| 九九热AV| 欧洲综合色图| 精品久久久九九九孕妇| 呦呦一区| 日日日色色色色色| 一块操欧美性爱| 热G综合热G中文| 日韩啪啪视频| 午夜传煤十二区精品| 99热超碰| 91亚洲欧美| 久久二| 欧美综合另类| 99re不伦| 黄片直播三级黄片两女一男| 青女偷拍网| 国产色呦呦| 大干人妻| 激情一区二区三区在线观看| 视频一区二区免费在线| 91欧美美女日韩国产婷婷| 亚洲精品国产无码高清| 亚洲资源一区| 色婷婷综合网站| 大香蕉久久| 亚洲精品国产无码高清| 加勒比av网| 人妻啊啊人妻啊| 国产97亚洲| 国产精品一区人妻精品阁在线| 色香综合天天影视综合 | 日本女优在线视频福利| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 久久久亚洲Av| 五月天精品| 亚州操操穴网| 亚洲色诱惑| 男女啪啪网站免费视频| 99久在线精品99re8a| 欧美十八禁网站| 997色在线| 国产91美女高潮| 国产午夜福利专区综合| 亚洲天天自拍| 免费观看国产小粉嫩喷水精品午| 国产这里只有精品| 少妇啪啪自拍| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 欧美黑人猛交春色影视大全| 人妻一区视频| 97超碰色色| 亚洲资源网| 先锋精品av色鲁| 亚洲 日本 国产 综合| 婷婷8月天青娱乐| 久久天天躁日日躁狠狠躁| 免费毛片在线播放| 久久亚州精品成人Av无| 亚洲黄色电影| 久久久久久久久久久久久久久久9| 亚洲成人性爱在线观看| 超碰精品国产无码| 欧洲性爱无码区| 偷拍亚洲情色| 国内一区二区三区| 97超碰免费人人性爱| 99人人干| 伊人欧美大香蕉视频| 欧在线一二区| 日韩在线观看AV| 久久久精品国产亚洲伊人| 影音先锋乱伦资源| 亚洲另类久操网| 国产超碰人人爽人人做| 26uuu欧美日韩| 中文字幕精品专区搜索结果91| 男人下部插入女人下部| AV天堂电影网| 水野优香在线观看| 99热99色| 国产成年女人免费视频播放a| 色图四区| 麻豆熟妇乱妇熟色A片在线看 | 噜噜吧,噜噜色,噜噜| 久久无码成人| 国产一级特黄大片处女| 人人干黄色| 中国人高清www色视频免费| 九草九九九| 久久亚州高清| 91干熟女| 日本污ww视频网站| 国产精品无码av在线| 2018天天日天天日| 亚洲性爱成人| 九月激情婷婷| 国产一级作爱毛片| 全球成人中文在线| 91人妻Pr| 国产 日韩 欧美高清| 精品久久久av无码免费| 亚洲色狠| 收看日本人日bb| 男女猛烈无遮掩视频免费软件| 亚洲国产丝袜熟女av | 偷拍欧美综合| www.男人的天堂| 国产精品乱码久久久久久| 91网站18在线| 国产精品一区二区后入| 性久久| 成人无码在线视频网站| 伦激情人妻另类人妻| 日韩簧片免费看| 日B操| 99婷婷一区二区| 97干在线| 无码高清操逼网址| 成人网站 免费观看| caoni国产亚洲av| 国产偷拍自拍在线视频| 久久婷婷影院| 麻豆久久久久久久久丝袜| 精品免费一区二区三区在线亚洲人成| 嫩草 人人网精品| 亚洲脚交| 欧美日韩在线小说 | 亚洲人在线| 亚洲精品欧美专业| 国产乱子伦一区二区三区免看| 99日免费视频中文字幕| 97亚洲中文| 人人操,人人液| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 91GD.COM| 国产极品999| 精品精品精品| 国产成人主播| 91老司机精品| 你草精品在线视频| 超碰97在线中文| 九久久九九久视频| 一区二区三区黄片免费观看| 五月天激情婷婷| 青青色综合| 老熟妇一区二区三区啪啪| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 欧美日韩亚洲天堂| 日韩亚洲精品一区二区| 另类小说五月天| 欧美中字二区| 午夜在线播放| 成人免费性爱视视| 国产成人亚洲精品无码古代早漏男| 欧美A片中文字幕| 亚洲女人91| 色欧美亚洲| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 中文幕97| 夜夜夜夜久久久久| 8x福利精品第一福利视频导航| 97摸视频| 97色爱| 久久久久久亚洲精品不卡人乳| 亚洲免费成人在线高清无码视频| 亚洲精品视频在线播放| 性性欧美| 久草这里只有精品| 人人摸人人叼| 九九九九日本| 啊啊啊啊啊啊啊啊视频| 男人女人18禁片免费看网站| 色婷婷综合网站| 91jk色拍| 亚洲?V高清一区二区三区尤物| 三级激情网站| 91肏屄网| 欧洲视频在线| 亚洲熟女av日韩熟女| 夜夜嗨AV蜜臀av| av橘色网站| 国产精品熟女九色九色蜜臀| 99热色这里只有精品| 亚洲交换| 精品一区二区成人| 97色欧州| 九九九精品美女| 色综合一本| 午夜120视频在线观看| 国产视频三区四区| 丝袜美腿91| 欧美日日夜夜| 99re公开精品免费视频| 91丨九色丨国产丨人妻在线 | 中文字幕一区二区无码成人| 高清无码 国产精品| 亚洲人妻熟妇三十三区| 欧美,日韩,中文,另类| 国内精品久久人妻性色av| 九九无码| 男人天堂欧美| 久久久久久亚洲精品不卡人乳| 成人在线永久| www.色吧5.com| av在线免费一区二区| 国产精品无码在线| av 模特一区了| 成人三一级一片aaa| 久久精品性| 日本道日本道中文字幕日本道最新日本道在线观看 | 国产强奸超碰AV| 国产诱惑| 成年人一级黄色毛片大全在线观看| 欧美暴力猛交| 2020中文在线一区二区三区| 自拍视频大全亚洲专媒视频/一区二区三区 | 91激情网| 99国产精品视频尤物| 无码人妻丰满熟妇奶水区毛片| 午夜性刺激视频免费观看| 99这里有精品| 九九AV| 九色 人妻 大香蕉| A 天堂| 日日天天久久啊啊aaa| 亚洲97| 久久综合18p| 亚洲国产另类在线中文| 欧美天天插| 91色色网站| 9久久9综合| 国产精品一区二区久久精品| 久久m| 制度丝袜99| 色91综合网| 亚洲精品免费中文字幕| 久久25| 日韩免费看在线黄色片| 综合影视国产无码| 又黄又硬又粗又长国产视频| 男人的天堂亚洲| 久热一区二区| 日韩精品人妻中文字幕久久久| 中文人妻av高清一区| 成人精品欧洲亚洲| 婷婷五月天AV| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 久久国产乱子伦精品免费女,网站| 韩国久久97| 骚女天天综合网| 亚洲AO在线| 免费A片三p视频| 美欧老女人97| 亚洲AV无码久久久国产精品| 青娱乐休闲视频在线观看| 天天综合欧美综合| 国产最新小视频在线播放下载| 欧美精品欧美精品系列| 五月综合色| 久久久久亚洲| 麻豆精品A片免费观看| 日本视频一区二区三区| 欧美综合另类| 超碰是碰在线观看| 色哟哟-国产专区| 九月丁香综合网| 久久久久久加勒比| 素人美腿视频网站| 中国探花熟女| 国产一区免费午夜视频| 啊啊啊操一区| 亚洲精品自拍| 91精品导航| 日本精品免费一区二区三区四区| 91精品久久综合熟女| A级在线视频| 欧美洲精品一级| 女人妻一区| 欧美疯狂做爰xxxx| 一起草欧美| 射久久| 亚州乱码中文字幕综合久久久| 国产精品免费视频不卡| 伊人网青青| 偷拍盗拍亚洲色图图片| 亚洲欧美91√| 大香蕉综合在线| 四虎 精品 WWW| 亚洲 自拍偷拍 欧美| 亚洲爽图| 97这里有精品| 五月天AV资源| 91人妻丝袜无码| 亚洲操逼网| 69少妇一区二区| 国产传媒日韩| 日本大香蕉综合网红本杳社区| 区一二区日韩亚洲乱码av电影| 日日爽夜夜爽| 免费啪啪啪网站18岁| 可以免费看黄片的视频| 欧美日韩资源| 青娱乐91| 狠狠爱夜夜| 黑人粗大V S日韩女优视频| 国产高清不卡视频| 色哟哟国产精品免费网址| 97超碰美女| 成人日本片久久久蜜桃| 美女丝袜激情小说| 色香91| 亚洲一区制服诱惑| 欧美大香蕉97| 天天日B狠狠操| 国产丝袜视频| 超碰日本97美女人妻人人玩人人爱| 麻豆国产视频精品观看| 欧美人与动性人交a| 伊人欧美大香蕉视频| 97久久久久久久久久| 欧美色图下一页| 开心六月色| 性欧美另类高清| 人妻激情偷乱视频一区二区三区| 中文字幕成人| 综合熟女| 91精品国产综合久久久蜜臀| 97爱爱爱综合| 久久久婷婷| 性爱AV天堂| 屌妞视频久久久久久久久久久久| 熟女自慰久久久| 老熟女区| 欧美天天综合站| 狠狠干2020| 亚洲激情欧美色图| 另类小说欧美激情校园春色| 日韩熟女精一区二区三区不卡| 91性情| 欧美se综合| 国产成人久久精品蜜臀| 日产欧美电影一区二区三区| 国产又黄又粗的视频| 国产成人综合在线播放| 久久青娱乐| 人人操人人操人妻人| 91精品人妻| 1769成人国产精品视频| 久久专区| 日本免费一级AAA大片器| 中国大陆国产高清AⅤ毛片| 免费操逼视频下载| 精品超碰中文在线| 久久亚洲不卡一区二区三区| 中文字幕视频免费| 日韩91网| 欧美极品| 精品人妻美妇91job| 午夜男女爽爽爽影院视频| 91欧美性| 91精品导航| 亚洲牲交| 日本欧美一区二区三区免费| www欧美性爱| caorenqi shipin| 深爱五月天| 欧美爆操91| 91最新综合| 欧美极品色| 九九热精品视频六| 激情抓乳插进去啪啪啪日韩 | 加勒比AV网| 日本2020一区二区| 欧美传媒| 九九成人| 欧洲亚洲综合| 色图综合网| 色嗨嗨在线| 亚洲有薄码区日本系列中文字幕| 精品九九九九九九九九九| 欧美18 在线观看| 久久久久久久国产视频| 九九热男人天堂| 五月天亚洲网| 欧美97爱| a级理论午夜日本| 中文字日本乱码| 亚洲日韩熟女人妻高清在线| 91熟女丨91老女人| 中文字幕精品一区二区精| 五月丁香啪啪啪| 久99热| 玖玖爱一区在线| 女人香蕉久久毛毛片精品| 高清国产精品无码| 999国产精品999| 三级片大波波| 超碰色老头| 中国一区二区亚洲人妻| 午夜呻吟欧美| 亚洲 欧美 色图| 在线可观看的黄色网址| 青青草手机在线免费观看| 亚洲欧美啪啪| 三级精品三级在线观看| 日韩人妻资源网| 伊人嫩草| 秋霞无码av鲁丝片一区| 很很干很很操| 黑人性欧美| 午夜寂寞欧美| 二三四区精品| 大香蕉视频一二三区| 99婷婷| 欧美色图另类图片| 91小视频| 久久久久久久久久精| 日本成熟少妇A∨网站| 激情丁香五月| 久久精品一区二区三区不卡| 人人做,人人操,人人摸| 欧美九9 9 9| 亚洲做性| 欧美日韩一区二区三区四区蜜桃| 亚洲色性情三级| 热99这里有精品综合久久 | 最新日产中文在线麻豆| 伊人成人中文字幕久久网| 人妻一区二区三区视频| 欧美AB在线| 久操热| 97 国产精品| 日韩av一级黄片| 91熟女.com| 亚洲日韩美女中文字幕乱| 大香蕉手机在线视频| 天天天干977| 欧美性爱视频免费一区一A| 裸体1区| 伊人网综合在线视频| 久久爱超碰网| 成人性爱视频在线看| 欧美久久人妻少妇一区二区| 国产精品美女在线一区| 天美一区在线| www色色色com| 91亚洲色图| 中文字幕加勒比海高清无码免费视频| 超碰免费人妻人人| 亚洲天堂日本| 日本精品一区二区中文字幕| 国产精品久久久亚洲第一牛牛_在线观看 | 夜夜操美女| 国产第二页| 欧美日韩 强奸乱伦| 久久久久久裸体| 中文字幕在线高清男人的天堂| 国内毛片四区| 色噜噜人妻av 中文字幕| 激情婷婷综合久久| 中文字幕-区二区三区四区视频中国| 日日夜夜精品| 丝袜视频网国产90| 加勒比在线视频| 岛国A V在线免费看| 98精品国产乱码久久久久久| 成人免费在线网站| 草草草草视频| 成人在线视频一区| 欧美性91| 亚洲天堂女优在线| 亚洲另类小说卡通动漫| 欧美高潮| 熟妇熟女亚洲天堂网| 欧美少妇高潮久久91| 欧美大波激情xxxx| 自拍大香蕉乱插| 国产丁香精品露脸视频| 亚洲影视综合网| 免费操逼91| 狠操91,com| 校园春色综合| 91快色色色色色| 美女黄站| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 欧美精品三级黄片| 免费97视频| 91精品电影18| 美国一区二区免费视频| 日本一级真人黄色性爱视频| 超碰97最新人妻| 久久久五月天| 亚洲囯产精品女人久久久| 另类欧美综合| 国产久久一区二区三区野外在线| 91高清无码下载| 精品久| 狠狠干妹子| 亚洲一区二区麻豆影院| 成人三一级一片aaa| 香蕉视频精品亚洲一区二区三区在线播| 97精品一二区| 婷婷伊人| 老司机老司机午夜影院| 国产精品爆乳懂色蜜乳| 天天欧美| 丝袜视频网国产90| 欧美 熟女 日韩| 蜜桃色色网站视频三区| 日韩丝袜二区| 男女一级A片大黄,一进一出| 欧美色综合网| 日本在线观看网址| 97中文字幕色| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 天天天乱色综合全| 麻豆国产免费影片| 啪啪AV导航| 91色狼| 超碰97极品9| 欧美在线中M| 久久久久久91香蕉国产| 91人妻人人妻| 立川理惠无码一区二区| 欧美Aⅴ| 欧美天天综合网| 欧美色图另类图片| 蜜臀va69| 超碰97人人乐| 国产精品一级二级在线| 精品九九九九九九九九九| 91人妻在线视频| 在线情色电影 91大 | 热99这里有精品综合久久 | 色色色99| 美日韩成人| 大香蕉啪啪啪| 天天舔天天 | 国产又黄又粗的视频| 亚洲一区操| 欧美精品二区视频在线| 日本国产亚洲一区在线观看| 91 欧美| 色吧 综合| 2017av无码免费无线播| a'v在线资源| WWW.操逼.COM| 久久久久久久久久久久久9999| 日本高清电影欧美色图| 亚洲中文字幕妇伦久久| 亚洲一二三精品久久网| 五月天久久婷婷亚洲 | 欧美亚洲影视| 欧美中字二区| 亚洲综合色在线| 男人的天堂kva| 4虎在线观看| 天天噜| 蜜臀中文字幕| 无码免费在线观看黄色片| 免费的黄片有限公司| 强奸乱伦免费网站| 久久久久久久亚洲Av无码| 7777欧美成是人在线观看| 立川理惠加勒比无码| 五月天激情四射| 久久久999日本大片| 一区 欧美 日韩 麻豆| 91天美传媒在线| 伊人久久亚洲色欲综合网站 | 亚洲se电影| 3P丝袜熟女 色综合| 综合网天天| 日本人妻中文字幕精品| 国产福利小视频高清在线观看| 丁香五月天堂| 射丝袜高跟鞋99| 国产久久一区二区| 亚洲天堂另类| 中文字幕日韩电影人妻| 亚洲无码久久久久久久| 又黄又爽在线观看视频| 亚洲自拍欧美国产首页网曝| 9久精品视频在线观看| 久久有码视频| 婷婷干黄色| 午夜色婷婷| 麻豆AV一区二区| 97在线观看免费| 中文字幕蜜乳av| 2021久久国产综合精品青草| 伊人亚洲国产一成人久久精品,久久| 国产一区二区三区不卡手机在线| 一区二区播放| 一级性爱视频免费观看 | 中文字幕在线观看丝袜| 四虎免费看黄| 中文字幕三四区| 美国aaaaa一级黄片| 五月综合激情| 综合自拍| 2000亚洲男人天堂| 热99re69精品8在线播放| 黄色av网站在线播放| 这里只有精品视频| 91伊人久久在线| 国语对白露脸XXXXXX| 人人操人人狠狠操| 男人 天堂 日 亚洲| 花花AV导航| 蜜桃av综合网发布| 日韩激情视频| 中文字幕乱码在线| 思思热免费视频观看| 精品美女在线视频| 白嫩少妇| 91精品综合久久久久久五月丁香| 在线观看视频91| 天天澡天天狠天天天做| 黄色性爱网网| 怡春苑东京热| 天天视频黄| 69精品人人人人| 加勒比综合a∨| 国产成年免费大片黄在线观看| 亚洲有码 欧美精品| 精品久久久一本一道| 欧美精品99久久久**| 嗯嗯嗯嗯啊啊啊好紧好大| 亚洲高清欧美总合| 男人的天堂一区三区| 怡春苑东京热| 精品免费视频国产一区| 国产欧美伊人| 国产97在线 | 亚洲| 美女自卫慰黄网站免费| 久久高清无码夜夜操| 天天激情综合站| 青青草日韩无码| 超碰超碰超碰超碰的大鸡吧操黑丝袜| www黄片免费看com| 亚洲自拍欧美色综合| 色黄污美女啪啪啪免费网站| 99碰碰| 中国熟妇| 激情综合网激情五月天| 国产美女91| www九九热| 中国少妇啪啪视频| 色婷婷av在线观看| 男人的天堂99| 探花精品 一区二区| 色综合五月天| 玖玖久久久| 色哟哟的毛片| 不卡在线观看视频| 91久久久久久久久久久| 日韩福利综合一区| 熟女一区二区三区| 18禁精品网站在线看| 91nbbbbbb| 国产一区二区三区久久久精品| 人妻精品一区二区全免费| 天天插夜夜操| 日韩人妻精品| 日本3级一区二区免费| 91操熟女视频 | 91狠狠狠| 996热| 日本久久超碰| 久久久久人妻| 欧州一区二区三区四区| 久久av色| 亚洲导航深夜福利| 久久久草草精品| 久久精品国产亚洲AV片多多 | 久久↗↗| 99久久婷婷国产综合精品草原| 99热这里只有精品1| 玖玖视频在线资源一区二区三区| 国产传媒日韩欧美| 亚洲大色堂| 欧美专区日本专区| 色图四区| 一区二区三区蜜桃成人撸久久东京热| 日韩亚洲精品一区二区| av橘色网站| 久久国产精品一级二级三级| 久久久久九九九| 9精品久久| 乱色视频中文字幕| 大肥女高潮bbwbbwhd视频| 亚洲色图加勒比| 中字幕人妻一区二区三区| 亚洲欧洲激情| 一区二区三区 丝袜 高跟 美腿| 91视频伊人| 色婷婷一区二区三区久久午夜成人不| 5月婷婷6月六月丁香| 亚州一区二区| 午夜男人av| 久久精品无码专区| 玖玖爱一区在线| 久久亚洲AV成人精品无码| www欧美91| 男插女青青影院| 欧美黄色片AAAAA| 天天激清| 97超碰资源网| 黄网色一区二区三区四区精品| 欧美在线天堂| 伊人国产av| 伊人久久艹| 99这里只有精品国产| 欧美BT 亚洲色图| 黑人中出21连凳花野真衣| 成年人黄色小视频网站| 欧美天天干| 日日骚精品视频| 四虎永久在线精品免费网址| 日本熟妇人妻中出视频| 91丨人妻丨国产丨丝袜| 好爽要喷了| 欧美久久毛片基地| 久久五月婷| 国产熟女完整版中字| 蜜臀在线视频| 美欧色综合| 麻豆天美在线喷水AV| 伊人影院在线理论播放 | 国产乱伦性爱AV| 人人 操人人 操人人| 亚洲色宗合| 色欧美色交综合| 夜夜骑操视频| 美女大乳久久久久久久女人18| 欧美色婷婷| 国产午夜激片Av毛片不卡| 国产精品黑人一区二区三区| 青青草这里只有精品| 日本高清熟女久久一区| 色一射色一射| 防屏蔽在线视频| 久久草在线综合视频| 亚洲精品性爱片| 日本性交操一区二区不卡系列| 四方色播| 天天色综合影视网| 精品综合久久久久久97| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 欧美一级美片在线观看免费| 丰满人妻-区二区三区| 九九热在线精品视频| 九一综合精品视品av| 天天添天天干电影| 91黑丝露脚| 操逼日韩无码| 国模吧 一区二区三区| 婷婷激情五月天小说网| 2017av无码免费无线播| 婷婷伊人网| 五月丁香六月| 婷婷丁香久久| 亚洲蜜臀精品视频久久| 人人操人人肉久久精品| A片A5445444| 国产内射爽爽大片| 一级毛片电影免费看| 日本人人操人人操| 中日亚韩免费视频| 国产亚洲女v在线观看| 中国一区二区亚洲人妻| 欧美中字二区| 69XX一中文字幕人妻91| 色丁香五月婷婷| 亚洲欧洲综合视频在线| 国产宅男宅女在线观看| 射丝袜高跟鞋99| 奇米四色影视777久久久| 亚洲国产91精品一区二区久久| 亚洲 无码 偷拍| 人人操人人干xxx| 91中文字幕制服丝袜免费视频| 97se综合| 夜夜高潮夜夜爽| 成人福利视频网| 一起草三级AV电影在线观看 | 日韩欧美视频青青| 麻豆久久一区二区三区| 日本午夜福利影院| 九九九网页| 高潮内射在线| 国产精品一区二区三区四区五区| 亚洲天堂,男人| 伊人青青一区成人视频在线观看区| 丁香五月久久| 欧美淫穴| 五月天综合在线| 国产成年女人免费视频播放a| 蜜臀AV秘一区翔田千里| 国产熟女完整版中字 | 美日韩成人| 91久青| 97爱爱影院| 综合激情一一91| 无套后入双马尾| 九九九久久久| 加勒比久久综合网高清| 久久五月综合| a男人的天堂| 日韩少妇在线视频| 99久久99九九99九九九| 欧美日韩亚洲天堂| 久久亚州精品成人Av无| 日亚韩精品视频二区三| 亚洲精品男人的天堂| 极品粉嫩一区二区| 最近2019中文字幕国语免费版| 久久这里只精品99re66图| 久久亚洲婷婷| 神马久久69| 超碰97伊人| 国产精品视频91久久| 人人爱人人操人人性| 中文字幕精品一区二区精品| 麻豆久久视频在线地址| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 日韩av性爱在线播放| 国产综合永久精品日韩鬼片| 五月天久久久| 91美女在线视频| 激情小说激情视频| 性爱乱伦视频免费| 人妻熟女一区在| 都市激情人妻一区二区青青操视频 | 日韩欧美加勒比| 日本激情免费大片| 久久色人体| 人妻熟女一区二区| 97色综合中文网| 免费成人在线观看91| 一起草av| 九九九九免费视频| 青青操网| 日本天天操| 天天操天天日青青草超碰av| 欧美大香蕉久| 婷婷久草一区二区三区| 一区二区三区四区在线不卡| 日本性爱视频一级| 乱伦日本色图AⅤ| 伊人一区二区三区| 中文字幕欧美丝袜07资源| 婷婷视频在线免费观看| 在线视频一区二区传媒| 久久岛国| 秋霞一级视频在线观看免费| 91人妻视频在线| 久久系列| 不卡啪啪视频| 天天内射| 黄色香蕉视频网站一区| 天天爽爽爽爽| 欧美日韩一二三| 一级性爱啪啪视频| 磁力99AV| 粉嫩av平台| 玖玖视频在线资源一区二区三区| 天天天做天天天爱天天天爽| 中国一级特黄大片护士| 欧美中文字幕男人天堂久久精品| 中出91视频| 亚洲精品国产熟女| 久久久久久91香蕉国产| 色哟哟 日韩精品| 999在线电影香蕉| 91欧美www| 日本性爱少妇| 亚洲91综合| 国产精品女生av| 国产精品欧美激在线| 夜夜操91744565| 免费精品无码一级毛片牛牛影视| 91久久久久久| 人人操人人操人妻人| 黄色毛片A片| 亚洲一区制服诱惑| 99性爱在线观看| 久久久男人的天堂| 天堂俺去俺来也www久久婷婷| 97久精品| 97超碰人人操人人操| 色综合美国| 亚洲毛片基地专区| 91在线欧色| 电家庭影院午夜69久久夜色精品国产69乱 | 日本一本一区二区三区四区五区欧美日韩中文字幕 | 欧美成人精品一区| www.色婷婷.com| 99re欧美| 国产女人高潮视频| 91熟女视频| 无码一区二区三区四区五区六区七区八区九区十区视频 | 狠狠狠一区二区三区| 亚洲综合在线第一页| 性爱综合网| 91丝袜视频在线观看| 黑丝内射一区二区三区| …亚洲黄色厕厕女女在线播…| 成人影 天天操 亚洲| 亚洲一区二区三区播放在线| 人人澡人人澡人人| 亚洲1区| 翔田千里A片一区二区| 国产精品suv一区| 日韩激情啪啪| 夜夜爽夜夜爽| 校园春色综合色| 亚洲 欧美日韩 另类| 色香综合| 久干网| 大香蕉av在线| 国产精品爆乳懂色蜜乳| 综合网97| 欧美色棕合| 在线一道啪| 日韩在线电影| 60秒试看最爽10分钟网站| 爱av免费| 手机看片91人妻| 夜夜夜夜爽| 欧美综合骚| 精品人妻中文字幕4399| 人妻大香蕉| 久草成人福利导航| 精品成人无码| 婷婷久草一区二区三区| 午夜天堂啪啪| 亚洲不卡三级手机播放| 亚熟hd视频在线| 最新欧洲欧美日本激情网站| 亚洲啪啪视频免费| 天天性射网| 成人色女网| 亚洲丁香花色| 91精品女厕偷拍视频| 伊人欧美大香蕉视频| 97色视频在线| 亚洲 日本 一 二 三| 上海一级黄片| 91香蕉国产尤物视频| 亚洲宗合网| 久久久久久久少妇| 欧美精品日韩一区二区| 国产强奸乱伦xd| 熟女人妻精品一区二区视频 | 国产亚洲精品美女久久久m| 91天天| 91综合天天看| 射欧美综合| 日韩国语字幕| 麻豆这里只有精品| 欧美国产欧美在线观看| 亚洲天堂久久久久久粉红视频| 九九九九精品一区| 国产无遮挡| 啊啊啊啊嗯嗯嗯用力好爽| 日韩亚洲Av人人夜夜澡人人爽| 欧美18老人禁| 欧美在线中M| 色老汉色| 欧美 亚洲 综合 制服| 熟女视频久久| 国产熟女免费观看久久| 亚洲97成人在线观看| 啊啊啊好大好深| 国产九九九九九九| 亚洲一二三| 久草精品国产蜜臀| 嗯嗯,啊啊,国产精品| 成人无码影片视频在线| 一级性爱啪啪视频| 久久 国产 无码| 91情色| 97爱亚洲| 日韩大香蕉AV影片| 久久久成人免费av电影| 韩日精品福利视频一区不卡在线免 | 日韩人人精品| 男人的天堂2018.| 99色色| 99在线免费观看| 亚洲中文字幕网| www.99在线| 91啪啪视频| 91天堂色男人的天堂| 亚洲色图日韩精品| 婷婷午夜成人色中色| 2019天天干天天操| 国产精品无套内谢| 国产大学生口爆吞精合集| 翔田千里爆乳巨臀无码| 成人性爱免费播放| 一区二区三区美女超清| 日本孕妇一区二区视频操逼免费看| 久久少妇| 欧美加勒比| 欧洲久久一二线| 肉动漫无遮挡h在线观看| 欧美999| 欧美日韩国产一区二区小黄片大全| 欧美激情一区| 啊啊啊好想要| 久操91视频| 日韩av不卡在线看| 国产欧美岛国精品一区| 日本一区二区不卡精品| 在线观看国产黄色| 久久精品国产72国产精品福利| 人人操人人大香蕉| 精品-91人妻子系列| 九九九九热| 国产在线视频午夜精华在| 26uuu久久| 国产91亚洲精品一区二区三区| 日韩 国产 欧美自拍| 国产毛片久久久久久久| 综合欧美激情网| 亚卅熟女乱色| 黄色AAAAA欧美| 免费av大片| 中文字幕 人妻不满 在线视频| 后入美女国产| 久久久18禁| 激情四射婷婷六月天| 欧美亚洲激情一二三| 中出91视频| 蜜臀久久99精品久久久| 成人26uuu| 国产成人bd在线观看| a久久| 日本三级黄页| 99操| 一本大道久| 欧美后入| 在线一道啪| 涩五月婷婷| 一区二区三区日韩欧美| 欧洲小说色图视频另类| av影院十区| 日韩日本欧美在线观看| 在线一道啪| 狠狠操狠狠| 亚洲第一色页夜| 亚洲drav色图| 伊人久久AV诱惑悠悠| av在线播放国产一区| 亚洲熟女中文字幕在线| 97色五月天完| 啊啊啊久久久视频| 欧美综合天堂| 91影库| 久久天堂婷婷网| 91精品婷婷国产综合久久竹菊| 久99在线免费观看视频| 美国日韩黄片| 日韩欧美成人综合在线| 欧美色色色| 欧美在线55555| 婷婷色香伊人| 久久直播国产| 国产欧美精品日韩区二区麻豆天美| 日本东京热大香蕉a片| 久久久成人免费av电影| 一区二区三区美女超清| 精品久久久亚洲AV成人网站| 欧美亚洲影视| 色约约一区=区三区| 黄色av网站在线播放| 9久久精品| 久久日本熟女精品一区| 精品一区二区三区丰满熟女-亚洲欧美一区| 欧美日韩国产另类综合| 嗯啊不要在线| 欧美色道啊| 少妇一区二区三区精选| 综合五月婷婷| 99热8| 蜜乳视频网站| 中文字幕 人妻不满 在线视频| 中文字幕精品久久久久人妻红杏ⅰ| 另类图片天天影视| 亚洲无码国产探花在线观看| 婷婷综合久久| 欧美体内射精| 欧美一二三级精品在线| 大香交伊人网| 208天天久久九九九| 激情抓乳插进去啪啪啪日韩 | 今日头条成人一区二区三区四虎精品| 国产久久av| 台欧久久精品视频| 色九色久| 国产探花精品在线| 97欧美精品综合| 9Ⅰ老熟女| 开心五月激情网| 蜜屁Av| 超碰97人妻免费在线| 五月丁香六月| 91操熟女视频| 日韩丝袜二区| 亚洲宗合网| 久久久久亚洲AV无码专区少妇| 日本特黄f c2| 国产欧美另类久久久精品课程| 日本精品高清一二区一本到| 99久热精品99re6热| 中文字幕高清精品一区| 爆乳免费黄网站| 丝袜足交视频| av国产无码| 91模特在线观看| 久久免费精品视频免一| 精品中文一区二区| 四虎影视永久在线免费| 天天综合网1|