亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

Java全棧物聯(lián)網(wǎng)平臺源碼解析:從協(xié)議接入到Web組態(tài)大屏

Java全棧物聯(lián)網(wǎng)平臺源碼解析:從協(xié)議接入到Web組態(tài)大屏 簡介基于 Java 主流技術(shù)棧SpringMVC、Spring、MyBatis與 MySQL 構(gòu)建的物聯(lián)網(wǎng)監(jiān)控平臺源碼界面由 HTML、jQuery、CSS 實現(xiàn)適用于工業(yè)設(shè)備監(jiān)控、智能家居環(huán)境監(jiān)測等場景面向需要快速搭建數(shù)據(jù)采集與遠(yuǎn)程控制系統(tǒng)的開發(fā)者或運維人員。系統(tǒng)集成 TCP/IP、HTTP、MQTT 等通訊協(xié)議可無縫對接海康攝像頭并具備報警信息管理、自動控制觸發(fā)、歷史數(shù)據(jù)查詢與報表導(dǎo)出、子賬戶與場景授權(quán)等完善功能。壓縮包約 832.96MB共 2000 個文件以 jsp、java、js、css 前后端代碼為主附帶 sql 數(shù)據(jù)庫腳本、xml 及 properties 配置、pdf 與 doc 文檔方便二次開發(fā)和部署維護(hù)。目前已有 245 人學(xué)習(xí)下載文檔齊全、目錄結(jié)構(gòu)清晰可幫助讀者節(jié)省大量自研時間是一套值得參考的成熟物聯(lián)網(wǎng)監(jiān)控解決方案。1. 一套 Java 全棧物聯(lián)網(wǎng)平臺源碼能替你省掉的是協(xié)議棧和組態(tài)這兩件難事做物聯(lián)網(wǎng)平臺的人都有個共同感受設(shè)備接入和組態(tài)畫布這兩件事比想象中耗時得多。一臺 Modbus 設(shè)備、一個 MQTT 傳感器、一路??禂z像頭協(xié)議各不相同每接一種就要寫一遍解析、斷線重連、數(shù)據(jù)入庫組態(tài)更是從零開始畫圖元、做屬性綁定、調(diào)實時刷新。這套基于 Java 全棧技術(shù)的物聯(lián)網(wǎng)平臺源碼把組態(tài)、大屏可視化和通訊協(xié)議集成MQTT、TCP、??禂z像頭打包在一起意味著你拿到的不是一套空殼代碼而是一條從設(shè)備數(shù)據(jù)到瀏覽器頁面的完整鏈路。如果你正在評估是自研還是基于源碼二次開發(fā)這篇文章會告訴你這套源碼怎么拆、怎么跑、坑在哪。2. 先拆解這套源碼組態(tài)、大屏、協(xié)議接入各自想解決什么問題2.1 Web 組態(tài)把傳統(tǒng)組態(tài)軟件的能力搬進(jìn)瀏覽器到底少了什么傳統(tǒng)組態(tài)軟件像 WinCC、KingSCADA裝在 Windows 上拖拽圖元、配置采集驅(qū)動功能很全但二次開發(fā)基本走封閉接口。Web 組態(tài)的思路不同前端用 SVG 或 Canvas 畫圖元把圖元的位置、顏色、數(shù)據(jù)源保存成 JSON后端只負(fù)責(zé)存儲和推送實時值。運行時瀏覽器拿著 JSON 渲染畫面再通過 WebSocket 接收數(shù)據(jù)刷新。這套 Java 全棧源碼里的組態(tài)模塊常見做法是前端 Vue SVG后端存組態(tài)模板和設(shè)備綁定關(guān)系。好處是部署簡單客戶打開瀏覽器就能看省掉插件安裝。代價是復(fù)雜動畫、歷史曲線回放、報警聯(lián)動這些傳統(tǒng)組態(tài)自帶的能力在 Web 組態(tài)里往往需要自己補(bǔ)。源碼里一般內(nèi)置了基礎(chǔ)圖元庫比如管道、閥門、儀表、傳感器圖標(biāo)夠畫流程工藝圖。你要是想把它做成類似 WinCC 那種重型畫面就得往圖元腳本和動畫編輯器里加代碼。組態(tài)的核心不是畫布渲染而是圖元和數(shù)據(jù)源的綁定。一個溫度計圖元綁定設(shè)備的 temperature 屬性運行時后臺把最新值推到前端圖元指針跟著轉(zhuǎn)。這個綁定關(guān)系的數(shù)據(jù)結(jié)構(gòu)設(shè)計決定了組態(tài)好不好擴(kuò)展。源碼里通常會有類似dataSource: { deviceId: dev001, property: temperature }的 JSON 配置圖元組件統(tǒng)一讀取這個字段再訂閱對應(yīng)的實時通道。理解了這條鏈路你看組態(tài)模塊的源碼就有主線了。2.2 可視化大屏從設(shè)備數(shù)據(jù)到頁面像素的完整鏈路可視化大屏是物聯(lián)網(wǎng)平臺的招牌功能。工廠產(chǎn)值、設(shè)備在線率、報警數(shù)量、環(huán)境溫濕度全堆一個屏上。大屏的數(shù)據(jù)鏈路比組態(tài)更長設(shè)備上報 → 協(xié)議網(wǎng)關(guān)解析 → 后端業(yè)務(wù)處理 → 寫入數(shù)據(jù)庫 → 推送通道 → 前端圖表渲染。任何一環(huán)慢了大屏就出現(xiàn)數(shù)據(jù)斷層。源碼里大屏常見的數(shù)據(jù)推送方式有兩種一種是大屏頁面直接訂閱 MQTT繞過后端業(yè)務(wù)層另一種是后端轉(zhuǎn)發(fā)到 WebSocket前端再訂閱。我更推薦后者。因為大屏需要展示的不只是原始測量值還有聚合結(jié)果比如最近一小時的平均溫度、設(shè)備故障率。這些計算放在后端做前端拿現(xiàn)成數(shù)據(jù)渲染鏈路更穩(wěn)。直接訂閱 MQTT 雖然實時性高但長時間大流量下前端很容易被消息淹沒也不方便做權(quán)限控制。大屏和歷史數(shù)據(jù)是綁在一起的。常見方案是后端定時把設(shè)備數(shù)據(jù)從 Redis 或 MySQL 聚合到一張大屏統(tǒng)計表前端展示時先查一次歷史數(shù)據(jù)再訂閱實時增量。這套源碼里的大屏模塊一般會提供設(shè)備總數(shù)、今日報警數(shù)、實時曲線這幾個基礎(chǔ)組件你可以照著擴(kuò)展。做二次開發(fā)時先摸清大屏接口返回的字段和推送消息的格式再動手改圖表。2.3 協(xié)議接入層MQTT、TCP、??禂z像頭在源碼里的位置協(xié)議接入層是物聯(lián)網(wǎng)平臺的地基。源碼里這一層通常分三個入口MQTT 客戶端、TCP 服務(wù)端、攝像頭拉流服務(wù)。MQTT 負(fù)責(zé)傳感器、DTU、智能儀表這類小數(shù)據(jù)量設(shè)備按主題訂閱消息體多用 JSON。TCP 服務(wù)端負(fù)責(zé) PLC、控制器、防火墻一類走自定義幀協(xié)議的設(shè)備需要做報文解析。??禂z像頭則走獨立通道用 RTSP 拉流再轉(zhuǎn)成 HLS 或 WebRTC 供前端播放。三層接進(jìn)來后數(shù)據(jù)必須統(tǒng)一收口。源碼里一般設(shè)計一個DeviceMessage內(nèi)部模型包含設(shè)備標(biāo)識、屬性名、數(shù)值、時間戳。MQTT 回調(diào)、TCP 解碼器、攝像頭告警事件最終都轉(zhuǎn)成這個模型再交給消息隊列和業(yè)務(wù)層。統(tǒng)一模型的好處是上層做告警、存儲、大屏不用關(guān)心底層是什么協(xié)議。你接新設(shè)備時只需要把新協(xié)議解析成DeviceMessage其余鏈路不用動。選型和架構(gòu)說完了下面進(jìn)入實際操作。把源碼跑起來你會遇到第一個問題環(huán)境版本不匹配啟動直接翻車。3. 把源碼跑起來環(huán)境版本、數(shù)據(jù)庫初始化和最小啟動流程3.1 環(huán)境搭配JDK 17、MySQL 8、Redis 與 MQTT Broker 怎么選拿到源碼第一件事是看pom.xml里的 Spring Boot 版本。如果是 Spring Boot 2.x配套 JDK 8 最穩(wěn)如果是 Spring Boot 3.x必須 JDK 17 起。我習(xí)慣先看pom.xml再定 JDK省得啟動時碰到UnsupportedClassVersionError。數(shù)據(jù)庫這塊MySQL 8 是主流注意驅(qū)動要配套pom.xml里用的是mysql-connector-j那版本就得兼容 MySQL 8。Redis 用于緩存和實時數(shù)據(jù)臨時存儲版本 6 以上就行。MQTT Broker 是獨立軟件平臺本身不實現(xiàn) Broker。源碼里如果配置的是本地端口 1883那你需要先啟動一個 EMQX 或其他 Broker。有的源碼在pom.xml內(nèi)嵌了 Moquette 這類輕量 Broker但生產(chǎn)不建議用。用 EMQX 的好處是管理界面能直接看連接數(shù)、訂閱關(guān)系出了問題好排查。部署時我把 EMQX 裝在獨立服務(wù)器避免和業(yè)務(wù)應(yīng)用搶資源。環(huán)境版本搭配參考下表避免頭疼組件推薦版本備注JDK8 或 17看 Spring Boot 主版本MySQL8.0必須 utf8mb4 字符集Redis6.x/7.x用于緩存和實時數(shù)據(jù)MQTT BrokerEMQX 4.x/5.x或 MosquittoNode.js16/18前端構(gòu)建按 package.json 要求3.2 初始化數(shù)據(jù)庫建庫腳本、時區(qū)和 utf8mb4 一個都不能少數(shù)據(jù)庫是源碼跑起來的第一道坎。源碼目錄里一般有個sql/文件夾里面放iot_platform.sql。我習(xí)慣先手動建庫指定字符集和排序規(guī)則再導(dǎo)入數(shù)據(jù)避免 MySQL 默認(rèn) latin1 導(dǎo)致中文亂碼。mysql -uroot -p -e CREATE DATABASE IF NOT EXISTS iot_platform DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; mysql -uroot -p iot_platform doc/sql/iot_platform.sql邏輯說明第一條命令建庫utf8mb4保證能存 emoji 和生僻字第二條命令導(dǎo)入建表語句和初始化數(shù)據(jù)。如果導(dǎo)入報Unknown database說明第一條命令沒執(zhí)行成功先確認(rèn) MySQL 登錄權(quán)限。導(dǎo)入完成后用show tables;檢查是否有設(shè)備表、規(guī)則表、組態(tài)表、報警表。接下來改application.yml里的數(shù)據(jù)源配置。這里的坑多是時區(qū)和參數(shù)拼寫。spring: datasource: url: jdbc:mysql://localhost:3306/iot_platform?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai username: root password: root redis: host: localhost port: 6379 password:參數(shù)說明characterEncodingutf8是給 JDBC 驅(qū)動用的和數(shù)據(jù)庫字符集無關(guān)但業(yè)內(nèi)習(xí)慣寫上serverTimezoneAsia/Shanghai防止 MySQL 8 的時區(qū)報錯。Redis 密碼如果沒有留空。還有人會漏掉web端口配置確認(rèn)server.port是你要的端口默認(rèn) 8080。3.3 按順序啟動后端、協(xié)議網(wǎng)關(guān)、前端以及驗證標(biāo)準(zhǔn)啟動順序有講究。先啟動 Redis 和 MQTT Broker再啟動 Java 后端最后啟動前端。后端啟動時需要連接 Redis 和數(shù)據(jù)庫如果 Redis 沒起來Spring Boot 會一直重試日志刷屏。我先寫一個啟動腳本按順序控制。# 1. 啟動 Redis取決于你的安裝方式 redis-server /etc/redis.conf # 2. 啟動 MQTT Broker以 EMQX 為例 emqx start # 3. 編譯并啟動 Java 后端 cd /opt/iot-platform mvn clean package -DskipTests nohup java -jar target/iot-platform.jar --spring.profiles.activeprod logs/app.log 21 # 4. 啟動前端如果是 Vue 項目 cd /opt/iot-platform-web npm install npm run dev邏輯說明-DskipTests跳過測試加速打包--spring.profiles.activeprod指定生產(chǎn)配置如果你的源碼里沒有prod配置就用default。nohup讓進(jìn)程在后臺運行日志重定向到logs/app.log。前端npm install第一次可能很慢掛代理也常見耐心等。驗證標(biāo)準(zhǔn)后端日志出現(xiàn)Netty server started或Tomcat started on port(s): 8080說明啟動成功。然后訪問http://localhost:8080/api/health返回{status:UP}。前端頁面能登錄、能看到默認(rèn)的組態(tài)畫面和大屏模板說明源碼環(huán)境跑通了。這個健康檢查接口如果 404就看日志里有沒有DispatcherServlet報錯。4. 設(shè)備接入與組態(tài)綁定實操MQTT、TCP、??禂z像頭怎么打通4.1 MQTT 接入訂閱設(shè)備消息、解析 payload 并寫入業(yè)務(wù)表大多數(shù) IoT 源碼都會用 Eclipse Paho 或 Spring Integration MQTT 做客戶端。核心是訂閱設(shè)備上報主題把payload轉(zhuǎn)成業(yè)務(wù)數(shù)據(jù)。先看一個典型的訂閱回調(diào)代碼。Component public class MqttMessageHandler { Autowired private DeviceDataService deviceDataService; public void handleMessage(String topic, byte[] payload) { // 過濾非設(shè)備主題避免處理系統(tǒng)消息 if (!topic.startsWith(device/)) { return; } String body new String(payload, StandardCharsets.UTF_8); // 假設(shè) payload 為 JSON: {deviceId:dev01,temperature:25.6,humidity:60} JsonObject data JsonParser.parseString(body).getAsJsonObject(); String deviceId data.get(deviceId).getAsString(); Double temperature data.get(temperature).getAsDouble(); // 統(tǒng)一走設(shè)備數(shù)據(jù)服務(wù)落庫并推送到實時通道 deviceDataService.savePoint(deviceId, temperature, temperature); } }邏輯說明這個方法只關(guān)心device/開頭的主題防止 MQTT 系統(tǒng)消息混入業(yè)務(wù)線程。解析 JSON 后把設(shè)備 ID、屬性名、數(shù)值傳給savePoint這一步就是統(tǒng)一收口。你接新設(shè)備時只需要改 payload 解析這一段后面的入庫、推送、告警邏輯不用動。參數(shù)說明QoS 建議用 1保證消息至少送達(dá)一次同時避免 QoS 2 的性能開銷。Broker 端配置max_message_rate等參數(shù)前先壓測再調(diào)不要盲改。clientId必須唯一否則 Broker 會先踢掉舊連接出現(xiàn)反復(fù)斷連。4.2 TCP 接入解決粘包/半包自定義報文長度字段TCP 設(shè)備接入復(fù)雜度比 MQTT 高一截尤其是粘包和半包。Netty 里常見做法是自定義ByteToMessageDecoder先解析長度字段再按長度切幀。public class DeviceFrameDecoder extends ByteToMessageDecoder { private static final int MAX_FRAME_LENGTH 1024; Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, ListObject out) throws Exception { // 先等待 4 個字節(jié)的長度頭 if (in.readableBytes() 4) { return; } in.markReaderIndex(); int length in.readUnsignedShort(); if (length MAX_FRAME_LENGTH) { ctx.close(); // 非法長度直接斷開 } if (in.readableBytes() length) { in.resetReaderIndex(); // 半包等待更多數(shù)據(jù) } byte[] body new byte[length]; in.readBytes(body); out.add(Unpooled.wrappedBuffer(body)); } }邏輯說明這段代碼解決兩個問題。粘包時readableBytes大于 length第一次只讀出完整的一幀剩下的留在ByteBuf里下次再處理。半包時長度頭讀到了但內(nèi)容不完整調(diào)用resetReaderIndex回到標(biāo)記位置等下一次數(shù)據(jù)到達(dá)。out.add輸出的就是完整的一幀字節(jié)數(shù)組業(yè)務(wù)層拿到后不再關(guān)心字節(jié)邊界。TCP 設(shè)備協(xié)議千差萬別常見的有 Modbus、自定義頭部CRC 校驗、JSON 換行符分隔。我把解碼器設(shè)計成策略模式每種協(xié)議一個FrameDecoder通過工廠類注冊進(jìn)去。業(yè)務(wù) handler 接收解碼后的幀再按協(xié)議類型解析。這個分層能省掉后期很多改協(xié)議的痛苦。4.3 海康攝像頭接入RTSP 拉流、鑒權(quán)過期與 Web 播放??禂z像頭接入到 Java 平臺最穩(wěn)的方案是后端用 FFmpeg 拉 RTSP 流轉(zhuǎn)成 HLS 分片前端用 video.js 播放。先看 FFmpeg 轉(zhuǎn)流命令。ffmpeg -rtsp_transport tcp -i rtsp://admin:password192.168.1.64:554/Streaming/Channels/101 \ -c copy -f hls -hls_time 2 -hls_list_size 3 -hls_flags delete_segments \ /var/www/live/camera01/index.m3u8參數(shù)說明-rtsp_transport tcp強(qiáng)制走 TCP避免 UDP 在弱網(wǎng)下丟包花屏/Streaming/Channels/101是??抵鞔a流102是子碼流預(yù)覽用子碼流更流暢-hls_time 2每個分片 2 秒hls_list_size 3只保留 3 個分片降低延遲。這個命令在 Java 里用ProcessBuilder啟動注意定期檢查進(jìn)程是否存活。攝像頭鑒權(quán)有個常見坑海康攝像頭空閑一段時間后會要求重新鑒權(quán)FFmpeg 進(jìn)程還在但流已經(jīng)不更新了。我一般在 Java 里定時比如每 30 分鐘檢查 FFmpeg 進(jìn)程輸出如果接收不到數(shù)據(jù)或者返回碼非零就殺掉進(jìn)程重新拉起。另外并發(fā)拉流很吃帶寬如果 20 個攝像頭同時推主碼流服務(wù)器帶寬直接打滿。我的做法是預(yù)覽用子碼流 轉(zhuǎn)碼錄像才用主碼流。很多平臺為了省資源會直接在前端用 WebRTC 播放但??禂z像頭原生不支持需要ZLMediaKit或SRS做二次轉(zhuǎn)封裝。如果這套源碼里沒有包含流媒體服務(wù)器用 FFmpeg 轉(zhuǎn) HLS 是最省事的方式延遲 3-5 秒對于監(jiān)控畫面足夠。4.4 組態(tài)與大屏把設(shè)備數(shù)據(jù)綁定到圖元和圖表組態(tài)畫布的圖元綁定數(shù)據(jù)源核心是 JSON 配置。下面是一個簡單的溫度計圖元配置。{ type: thermometer, id: node_01, x: 120, y: 80, dataSource: { deviceId: dev001, property: temperature, aggregate: latest } }邏輯說明dataSource告訴運行時這個圖元的數(shù)值從哪里來。后端收到設(shè)備數(shù)據(jù)后根據(jù)deviceId和property找到對應(yīng)圖元通過 WebSocket 推送新的數(shù)值。aggregate字段表示取值策略latest是最近一次值也可以寫成avg_1m表示最近一分鐘平均值。前端收到推送后更新圖元代碼結(jié)構(gòu)大致如下。socket.onmessage (event) { const data JSON.parse(event.data); const node diagram.getNode(data.nodeId); if (node) { node.setValue(data.value); // 圖元組件內(nèi)部處理動畫 node.updateStyle(); // 可觸發(fā)顏色/閃爍等聯(lián)動 } };參數(shù)說明diagram.getNode在畫布緩存中查找圖元實例避免頻繁操作 DOM。setValue的方法圖元內(nèi)部可自行實現(xiàn)儀表盤轉(zhuǎn)指針閥門圖標(biāo)變色數(shù)字直接更新。大屏圖表比如 ECharts 折線圖同理訂閱device_point主題往series里追加數(shù)據(jù)再做時間戳窗口裁剪。組態(tài)模塊最容易設(shè)計混亂的是「保存」和「運行」兩條路徑。編輯時前端是畫布組件保存時把整個畫布的 JSON 提交后端運行時畫布組件進(jìn)入只讀模式后端只推數(shù)據(jù)。兩邊狀態(tài)要分離否則畫布一刷新編輯狀態(tài)丟失。這套源碼里如果發(fā)現(xiàn)保存后回到運行頁圖元位置變了多半是這兩個模式的數(shù)據(jù)沒有做隔離。5. 避坑與排查這套物聯(lián)網(wǎng)平臺源碼在生產(chǎn)前最常見的 5 個坑5.1 設(shè)備連上又掉線心跳和 keep-alive 參數(shù)互相打架現(xiàn)象用 MQTT 測試工具連平臺發(fā)一條消息后幾十秒內(nèi)設(shè)備就顯示離線日志里能看到 MQTT 客戶端不斷重連。原因設(shè)備端設(shè)置了自動休眠或者心跳發(fā)送間隔大于 Broker 的keep_alive超時時間。MQTT Broker 在超過 keep_alive 時間沒收到客戶端心跳包就判定客戶端掉線主動斷開連接。很多傳感器為了省電上報間隔 60 秒但 Broker 默認(rèn)keep_alive只有 30 秒自然會被踢。解決排查兩端參數(shù)。EMQX 里調(diào)整keep_alive到 90 秒或者修改設(shè)備端的heartbeat_interval為 20 秒。另外設(shè)備必須支持發(fā)送 MQTT 心跳包PINGREQ有些模塊自帶心跳但默認(rèn)關(guān)閉需要打開。這個坑最折磨人因為現(xiàn)象是「連接不穩(wěn)定」但不報錯只能靠抓包確認(rèn)。5.2 數(shù)據(jù)已入庫但大屏不刷新WebSocket 推送與回查的時序問題現(xiàn)象數(shù)據(jù)庫里能看到最新設(shè)備數(shù)據(jù)但大屏頁面上的數(shù)值一直停在幾分鐘前刷新頁面才恢復(fù)。原因后端寫入數(shù)據(jù)庫和推送 WebSocket 消息不是同一個事務(wù)。如果先推送再提交前端拿到的是未提交數(shù)據(jù)數(shù)據(jù)庫回滾后前端就顯示了一個不存在的值如果先提交但推送失敗前端沒有新數(shù)據(jù)。還有一種是用戶開了兩個瀏覽器標(biāo)簽其中一個頁面斷開了 WebSocket 但代碼沒有自動重連。解決用 Spring 的TransactionalEventListener(phase TransactionPhase.AFTER_COMMIT)監(jiān)聽事務(wù)提交事件再推送消息保證拿到的數(shù)據(jù)一定已落庫。前端統(tǒng)一封裝 WebSocket 重連邏輯斷線后指數(shù)退避重連避免重連風(fēng)暴。另外大屏的接口要設(shè)計成「先查一次全量再訂閱增量」不要只依賴推送否則斷線期間的數(shù)據(jù)就丟了。5.3 海康攝像頭畫面卡頓或黑屏碼流參數(shù)與鑒權(quán)并發(fā)現(xiàn)象攝像頭接入平臺后預(yù)覽畫面每隔幾分鐘卡一次嚴(yán)重時黑屏FFmpeg 日志報錯method OPTIONS failed: 401 Unauthorized。原因??禂z像頭默認(rèn)開主碼流4K 分辨率高碼率服務(wù)器帶寬和轉(zhuǎn)碼能力扛不住另一個是 RTSP 鑒權(quán)過期FFmpeg 進(jìn)程還活著但已經(jīng)失效。如果多個頁面同時看同一路攝像頭FFmpeg 會發(fā)起多次拉流浪費資源。解決預(yù)覽統(tǒng)一用子碼流地址后綴用102分辨率降到 1280x720碼率限制在 512kbps。用一條 FFmpeg 進(jìn)程拉流再通過 HLS 分發(fā)給多個前端避免每個瀏覽器各自拉 RTSP。寫一個定時任務(wù)每 5 分鐘檢查 FFmpeg 進(jìn)程的stderr一旦出現(xiàn)401就殺掉進(jìn)程重啟。黑屏?xí)r先看 FFmpeg 日志不要盲目重啟。5.4 組態(tài)圖元保存后又變回原樣緩存和版本號沒對上現(xiàn)象在組態(tài)編輯器里拖動圖元、修改顏色點擊保存提示成功但刷新頁面后又回到舊布局。原因前端在保存時把整份畫布 JSON 提交給了后端但后端圖元數(shù)據(jù)是緩存到了 Redis保存只更新了 MySQL刷新時前端請求先打到 Redis取到的是舊緩存。還有的源碼做了一層版本號控制但編輯器的保存接口沒有遞增版本號導(dǎo)致新數(shù)據(jù)覆蓋不了舊緩存。解決先看后端保存接口有沒有設(shè)置CacheEvict。如果沒有手動在saveDiagram方法上加上清除對應(yīng)畫布的 Redis key。如果源碼用的是版本號方案確認(rèn)前端每次保存時攜帶version 1后端做樂觀鎖比較沖突時提示用戶重新加載。這個坑屬于源碼邏輯不嚴(yán)謹(jǐn)改起來不復(fù)雜但影響體驗很嚴(yán)重。5.5 TCP 上報數(shù)據(jù)亂碼報文定界必須放在業(yè)務(wù)解析之前現(xiàn)象串口和 TCP 設(shè)備上報的數(shù)據(jù)到平臺后臺字符串頻繁出現(xiàn)亂碼或多字節(jié)拼接錯誤十六進(jìn)制看是兩個半包拼接。原因設(shè)備端響應(yīng)慢數(shù)據(jù)分多次到達(dá) Netty 的 channelRead業(yè)務(wù) handler 拿到每個 ByteBuf 就開始解析沒等完整幀?;蛘哒嘲鼤r沒有按長度切分把兩個數(shù)據(jù)幀的尾部和一個數(shù)據(jù)幀的頭拼在一起。解決檢查解碼器是否在decode里輸出了完整的數(shù)據(jù)幀。Netty 準(zhǔn)則是解碼器只負(fù)責(zé)定界業(yè)務(wù) handler 只負(fù)責(zé)解析內(nèi)容。我用的是 4.2 節(jié)的DeviceFrameDecoder先把長度頭解析出來等完整數(shù)據(jù)到齊了再out.add。業(yè)務(wù) handler 里再按照協(xié)議格式比如 JSON 或二進(jìn)制結(jié)構(gòu)解析。這個坑的排查手段是抓包把收到的原始字節(jié)流 dump 下來確認(rèn)粘包和半包現(xiàn)象再改解碼器。6. 進(jìn)階把協(xié)議接入層改造成適合自己業(yè)務(wù)的插件式框架6.1 抽象協(xié)議接口新增一種設(shè)備協(xié)議需要動哪幾個類設(shè)備接入的終極形態(tài)是插件化。定義一個統(tǒng)一接口MQTT、TCP、攝像頭各自實現(xiàn)再通過工廠注冊。public interface DeviceAdapter { // 解析出的標(biāo)準(zhǔn)消息統(tǒng)一交給上層 void onMessage(DeviceMessage message); // 啟動連接 void start(); // 停止連接 void stop(); }邏輯說明新增一種協(xié)議時只需要新建一個實現(xiàn)類在start()里啟動 Netty 服務(wù)、MQTT 訂閱或 FFmpeg 進(jìn)程在onMessage()里把原始報文轉(zhuǎn)成DeviceMessage。然后在工廠類里注冊映射比如ProtocolType.TCP - TcpDeviceAdapter。上層業(yè)務(wù)不用改。6.2 數(shù)據(jù)存儲優(yōu)化時序數(shù)據(jù)按天分表別讓 MySQL 扛全量設(shè)備采集數(shù)據(jù)寫入 MySQL 時單表數(shù)據(jù)量超過千萬后查詢明顯變慢。常見做法是按天分表表名帶日期后綴。CREATE TABLE device_data_20260711 ( id BIGINT PRIMARY KEY AUTO_INCREMENT, device_id VARCHAR(32), property VARCHAR(32), value DECIMAL(10,2), ts DATETIME, INDEX idx_device_ts (device_id, ts) );邏輯說明寫入時先算出今天的表名拼接 SQL 插入。查詢時也按日期路由。配合定時任務(wù)清理 90 天前的數(shù)據(jù)MySQL 壓力可控。更極端的方案是引入 TDengine 或 InfluxDB但那是后話。6.3 上線前驗證用模擬器壓測 MQTT 與 TCP 接入上限正式上線前我會寫一個模擬器用多線程同時建立 MQTT 連接隨機(jī) topic 上報。MySQL 和 Redis 的監(jiān)控看 CPU 和連接數(shù)。TCP 壓測用 Netty 客戶端并發(fā)連接每個連接定時發(fā)長度固定報文。壓測時注意生產(chǎn)環(huán)境的連接數(shù)限制先測 1000 個并發(fā)再逐步加到 5000看服務(wù)端 GC 情況和消息延遲。這里有個血淚經(jīng)驗壓測通過不代表上線穩(wěn)因為模擬器數(shù)據(jù)規(guī)律性太強(qiáng)真實設(shè)備的抖動、斷線重連、亂序報文才是真正的考驗。我習(xí)慣壓測時隨機(jī)丟包、隨機(jī)停發(fā)消息逼著系統(tǒng)走一遍重連和超時分支?;氐介_頭說的問題這套 Java 全棧物聯(lián)網(wǎng)平臺源碼能幫你省掉的是最基礎(chǔ)的協(xié)議棧、組態(tài)畫布和大屏框架但真正適配你的業(yè)務(wù)場景協(xié)議插件化、數(shù)據(jù)分表、壓測上線還得自己動手。要是你遇到的是設(shè)備報警沒推出來、組態(tài)動畫不絲滑、TCP 報文結(jié)構(gòu)改了一點就解不了包建議先從第 5 章的排查思路入手八成問題都在通道時序和協(xié)議定界上。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲精品天堂久久A∨51成人漫| 亚洲偷拍自拍在线视频| 三级三久久线久久99久目本WW| 尤物av网站| 白嫩91在线亚洲| 国产最新小视频在线播放下载| 丁香六月婷婷综合| 人人操人人精品影片| 日本孕妇一区二区视频操逼免费看 | www.yeyecao| 亚洲。日韩。欧美| 立川理惠被中出无码| 深爱激情五月天| av影院十区| 中文字幕亚洲在线一区| 96超碰网| 亚洲清纯唯美| 欧美综合区| 成人开心网在线视频| 免费av在线播放二区| 亚洲91网。| 影音先锋每日最新资源在线观看| 国产性刺激| 韩国免费播放一级毛片| 搡老女人老妇女老妇老熟女怎么读| 女色综合| 麻豆天美制片厂网站视频| 欧美第一页| 小泽玛利亚一二三| 亚洲中文字幕熟女| 超碰97首页| 芊芊操逼视频无码| 色欲久久99精品久久| 极品美女福利在线观看| 日本一卡二区在线| 欧美日韩婷婷中文| 亚洲国产成人精品无码专区| 少妇高潮喷水无套久久久久久| 伊人久操| 97免费视频在线| 久热这里| 你懂的在线观看区国产| 中文字幕一区二区三区四五区| 国内毛片无码一级毛片| 超清中文乱码字幕| 91男人天堂网| 色爽爽文学| PMv在线观看| 99久热精品99re6热| 91操人| 亚洲国产97在线精品一区| 七久久久| 92久久| 操美女高潮抽搐白浆| 啊啊啊啊免费视频| 欧美日韩性爱精品| 日语五十路和六十路亚洲国产精品 | 婷婷五月天色网| 超碰成人免费| www.久久制服糖| 九九九九九精品十六| 婷婷五月天在线观看| 9久精品| 久操 高清| 91人妻素女| 91爱| 超碰在线综合97| 黑丝少妇| 亚洲图片欧洲图片aⅴ| 亚洲图片91| 欧美久久婷婷| 日本人体九九九九九九| 日韩av不卡在线观看| 97干色| 丝袜高跟澳门91视频| 插入综合网| 超碰成人最新最好看| 国产精品操| 天天综合网亚洲综合网| 中文字幕人妻色偷偷久久皮| 人妻激情偷乱视频一区二区三区 | 丝袜美腿丝袜| 国产精品久久久久久久久久久久久久久 | 精品人妻丰满熟妇一区二区三| 神马午夜久久久| 夜夜爽33333| 96爱综合| 在线观看十八禁| www.99在线| 色综合久| 不卡免费av在线播放| 欧美性生活免费网| 尤物网址| 久久成人国产| 国产一区二区三三视频| 曰韩精品视频一区二区| 国产高清视频无码在线| 蜜臀一区二区三区在线| 日韩97P| 人妻无码一区二区三区久久99| 欧美色图天堂网m| 一区二区日韩欧美久久| 日本一级一级一级一级| 噜噜在线| 亚州色交| 肉丝网站91| 伊人久久久日韩一区| 国产久久日韩网站导航| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 色色无码| 97超碰69| 成人精品电影| 一区久久久二区| 精品少妇一区二区三区免费观看| 国产视频一区二区在线| 日韩性色b| 青青草日韩无码| 天天干少妇| 亚洲人妻一区二区三区| 日韩成人午夜精品久久高潮| 欧美一区二区三区成人性生活| 91夜夜蜜桃臀1区2区3区| 97硬碰| 美女毛片999| 超碰97最新人妻| 久久精品高清无码一区| henhen91| 97色碰| 精品人妻一区二区三区四区石在线| 国产精品人妻无码久久久互動交流 | 亚洲情色图片区| 欧美熟女妇同| 久肏视频字幕| 日本精品五区| 国产在线视频二区| 亚洲aV性爱| 91精品黄在线观看| 欧美天堂日韩三级国产传媒| 中文字幕天堂在线| 五月天丁香婷婷综合网站| 日韩欧美字幕亚洲一区二区| 久久久激情| 日韩情色视频| 青青草久久| 91精品人妻一区二区三区蜜桃| 精品国产乱码久久| 婷婷综合五月| 嗯嗯啊啊视频一区二区三区| 南澳成人一级片在线播放| 欧美亚洲小说| 人、人、摸,人、人、草| 国产 码在线成人网站| 蜜臀亚洲中文| 99操逼| 国产精品分类在线观看| 日本黄 R色 成 人网站| 欧美少妇内射| 人妻精品一区二区三区| 亚洲97久久精品亚洲| 色情成人五月天| 嗯~啊~快点 死我视频| 传媒免费一区二区三区| 亚洲成成熟女人综合一区二区| 国产精品爱欲| 激情五月天丁香| 色老汉色| 91精品国产一区三一| 伊人操你| 精品久久久久久亚洲| 超碰97最新人妻| 91亚洲电影| 欧美一区二区观看在线| 亚洲另类色图片| 日韩欧美女求操每天更新| 亚洲天堂AV在线播放| 五月婷婷六月丁香| 欧日韩一二三f区| 国产欧美精选自拍一区| 日韩精品9999| 色综合国产在线观看| 中文自拍欧美影视| 亚洲国产精品久久久久婷婷老年| 亚州熟女乱伦| 久久黄色网址| 丝袜综合网| 欧美一级A片在线看视频性色| 久久亚洲不卡一区二区三区| 东京热天堂网| 五月丁香| 日韩精品 欧美激情| 久久一区二区三区入口| 欧美久久人体| 乱伦3P视频| 青青草十区九区爱夜| 啊啊啊啊免费视频| 国产精品免费视频不卡| 免费簧片在线观看| 成人熟女区| 色色毛片| 青青操少妇| 百度百度日本操逼| 欧美性色综合网| 老熟妇乱轮| 五月婷婷激情| 亚洲天堂精品日韩电影| 91xingse| 亚洲国产美女久久久久| 丰满搜索结果 -第18页- 久久高清无码 | 欧美少妇性乱| 久久久国产三级黄色片| 人妻少妇精品| 任我爽视频在线观看| 97超碰久久| 久久发布国产伦子伦精品| 亚洲男人电影天堂| 天天弄欧美| 日韩偷拍一区二区三区 | 91碰碰碰| 人妻少妇久久中文字幕一区二区 麻豆 | 色婷婷亚洲婷婷| 四虎国产精品永久在线囯在线 | 777奇米影视777四色| 亚洲福利中文字幕在线| 午夜免费福利视频一区| 五月激情啪啪| 欧美|91色综合| 一二三啪啪专区| 97色爱| 97超碰久久色| 久久久久久十| 久久97| 一级性爱视频免费在线| 91午夜无码| 欧美久久伊人| 日韩有码免费视频| 91美乳| 人妻丝袜肏逼| 96麻豆精品一区二区三区| 夜夜嗨视频| 女欧美一区二三区| 人妻99p| 狠狠干,狠狠操| 麻豆久久视频在线地址| 欧美情色贴图| 天天色欧美| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 国产网站在线播放| 久草综合京东| 高清孕妇孕交 交孕妇| 超碰色图| 国产精品色片一区二区| 久草成人福利导航| 欧美黑人日韩少妇色情| 亚洲国产丝袜熟女av| 老女人日韩美91| 97久久免费| 国产白丝网站| 国产欧美精选激情视频| 素人播放一区| 蜜桃臀AV在线| 乱伦一区二区三区‘| 丁香五月婷婷基地| 蜜臀久久久国产| 欧美色图欧美| 特级毛片特黄久久免费看| 99热18| 狠狠色一区二区中文字幕| 美女t无毒不卡不卡| 人人操人人色人人摸| 婷婷丁香久久| 少妇熟女视频一区二区三区| 久久伊人亚洲AV无码网站| 91操碰| 久久精品国产久精国产| 亚洲乱码精品一区二区| 首页亚洲国产高跟丝袜诱惑视频 | 成人a级高清视频在线观看| 中国探花熟女| 粉嫩av一区二区三区四季| 欧美狠狠干| 激情久久久| 国产精品久久久999| 亚洲一区在线观看欧洲| 久久色人体| 久久久极品| 青青操轻轻| 96久久久精品| 在线a v| 黄总AV色图| 亚洲色图综合| 麻豆久久久久久久久丝袜 | 亚洲色电影在线| 自拍鲍鱼一区在线高清观看免费| 青青草无码视频| 大香蕉久| 久草线上视频免费看| 久久久久久电影| 亚洲精品国产av天美传媒| 午夜a成v人电影| 97资源欧美| 少妇高潮流水av免费| 亚殴在线| 91精品久久久| 久久精品中文字幕女同| 精品国产一级久久| 亚洲情色 欧美| 亚 欧 美 综合| 亚洲加勒比久久日本道| 后入内射蜜桃臀| 日韩成人精品| 91插B网站| www.超碰在线| 五月天我淫我色av| 久久亚州大香蕉| 九九热超碰97亚洲最新香蕉| 自拍偷拍 高清无码| 久污| 色嘟嘟人妻天堂网| 北约熟女超碰| 欧美色97| 99蜜桃臀亚洲成人在线观看| 91在线欧美| 天天干2019| 热思思免费视频| a片亚洲一本通视频| 国产欧美一级在线观看| 茄子社区国产精品| 992这里有精品| 手机看片日韩人妻| 欲综合网| 亚洲色欲一区二区三区| 新久久AV| 亚洲成人激情小说视频| 日本久久999| 欧日a| 人人妻人人爽| 五月天丁香| 国产亚洲性生活视频播放| 超碰97最新人妻| 大香网站| 久久的免费性爱视频| 色亚州人久干视频在线观看免费版| 亚洲国产精品成人无码久久久| 97射欧美| 精品999日本| 玖玖玖玖精品国产剧情| 91精品国产91久久青草| 九七毛片九九毛片 | www.acm成人黄色毛片| 1024人妻| 亚洲国产欧美一区二区潘金莲 | 波多野结衣先锋影音| 欧美色吧综合| 亚洲天天影视综合网| 开心激情站| 九月激情婷婷| 久久东京热久久| 久久人妻一区二区三区高清| 97超碰无码网| 五月丁香婷婷综合| AV不卡在线| 天天看片青娱乐| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 人人操 欧美| 97 国产精品| 最新亚洲风情电影| oumeisetu综合| 欧美国产伊人久久久久| 乱伦1色页| 日产操逼| 日产操逼| 艹少妇网站| 亚洲AV麻豆Aⅴ无码电影一| 亚洲综合贴图91| 九九十八精品| 精品久久在线区一区| 日韩啪啪视频| 一区二区三区激情在线观看| 日日噜噜夜夜狠狠视频无| 97干在线| 亚洲丝袜少妇在线| 久久亚洲熟妇在线视频| 在线97在线| 久久国产99精品72福利| 九九无码| 色妹子A V| 久久久久久久久久久97| 亚洲天堂电影精品一区| 5月婷婷6月六月丁香| 国产欧美日韩一区二区三区| 欧美色视频在线| 日本人妻伦在线中文字幕| 国产乱子伦久久精品综合一区二区三| 国产蜜臀精品一区二区尤物| 九九热精品视频六| 超碰人人干天天射| 亚洲资源一区| 91老司机视频| 91精品久久久| 亚洲精品无码久久AV| 亚洲,日韩,欧美,成人播放| 欧美性爱一区二区| 中文字幕精品一区欧美| 中文字幕精品一区欧美| 国模不卡| 手机看片1025| 久久久久久久九九九九九九| 神马久久久久久久久久久久| 夜夜騷av、一區二區| 久久超碰免费的| 久久精品视频一区三区小泽玛利亚| 欧美国产有色电影| 亚州综合电影| 天天日熟妇| 天天欧美97| 蜜臀AV午夜精品久| 乱伦一区二区三区‘| 日本免费人成视频播放120秒| 欧美爱三级日韩久久| se01国产在线视频| 国产无码一二三区| 久久超碰97中文字幕| 裸体美女久久久| 99日免费视频中文字幕| 国产精品农村妇女精品| 黄色片一区二区三区四区五区| 国产51色综合久久免费| 熟女人妻一区二区三区| 欧美熟爽综合| 亚洲资源一区| 亚洲 欧美 制服 另类 自拍| 亚洲美欧999| 爱爱动态试试看6 0秒| 欧美亚洲今日在线| 最新国产亚洲精品精品国产亚洲综合 | 欧美熟女丝袜| 夜夜嗨AV一区天天| 亚洲一区中文字幕一区| 97人妻色| 91五月天| 欧美Aⅴ| 超碰99在线观看| 久久久久久久久九九久孕交| 九九九九AV| 乱伦1色页| 蜜桃臀一区二区三区久久| 久久久91| 无遮挡h肉动漫在线观看| 国产情侣自拍在线播放| 国产一区二区三区,在线观看观看 五月开心久久AV官网 | 99热精品在线观看| 在线观看中文av字幕| 久操99| 亚洲熟女诱惑| 90后性网国产欧美| 美女网站黄页| 亚洲午夜福利在线影院| 91亚洲影院综合| 啪啪视频免费在线观看| 91色久| 精品无码产区一区二| 日韩欧美大片免费高清啪啪| 亚州成人A√| 蜜臀久久99精品久久久| 亚洲麻豆精品二区三区| 中文区中文字幕免费看| 日韩中文字幕视频在线观看| 中文精品少妇天堂| 国产AV无码AV| 天堂精品一区| 国产超碰| 亚洲图片 欧美电影| 日本一区二区成人在线| 天天日天天屌天天操| 无码137片内射在线影院| 九九AV| 久久二| 天天综合色电影| 欧美另类丝袜熟女| 日韩人妻精品久久久久| 夜夜夜夜久久久久| 九月丁香婷婷| 男人的天堂午夜av| 中文字幕久久亚州无码| 精品-91人妻子系列| 日本黄色XXX| 色综合色综合网| 麻豆精品A片免费观看| 欧 美 自 拍 偷 拍| 亚洲国产青青| 黄色视频特级毛片| 999久久久国产精品| 99热免费| 久久午夜鲁丝片| 色色色色色色色色综合| 成人三一级一片aaa| 国产97在线播放| 婷婷久久大香蕉| 蜜臀一区二区三区在线| 干b在线性社区| 欧美人妻精品一区二区| 久热伊人| 免費人妻夜夜爽天天爽爽一区| 国产高清精品一区二区三区毛片| 精品一国2| 色婷婷99| 尤物黄色在线观看网站| 91九色丰满高潮| 私色综合网| 欧美组图日韩亚洲中文字幕| a人片中文字幕一区二区| 园内精品自拍视频在线播放| 国产精品一区二区麻豆| 久久中文色图| 久久草在线综合视频| 日韩无码极品| 日欧美色| 91九九| 不卡av在线中文字幕| 青青草无码视频| 久久9精品视频| 操逼免费视频无码国产| 91欧美大片| 后入精品| 激情欧美日韩女同久久| 97五月天| 亚洲最大AV网| 天天操夜夜操狠很操| 天久久久噜噜噜久久国产精品爽爽 | 日本三级黄页| 国产浮力影院第1页| 国产又粗又大硬免费色网视频| 色综合超碰超| 天天碰操中国年青熟妇| 手机看片1025| 秋霞蝌科网日本一区| 日本黄色精品专区网站| 99rre在线精品99re8| 加勒比AV天堂| 91艹逼精品| 欧美熟爽综合| 爱爱60秒免费视频| 俺去俺来也在线www| 九九视频黄色片| 水滴偷拍| 中文字幕三四五区| 97超碰欧美手机| 91超碰在线播放| 亚洲色香| 中文字幕av久久爽Av| 精品一区二区三区蜜桃臀赵总| 久久超碰97中文字幕| 色情综合| 丁香六月婷婷久久综合| 国产男女无套视频免费观看| 强歼乱伦资源网| 综合久久久久久久综合网| 国产自制av蜜乳| 亚洲图片欧美色图| 国产精品第一页国产大屁股视频免费区| 97视频在线免费| 国产精品九九| 久久久三区二区一区| 久久久九九| 国产精品一级二级在线| 中出91视频| 日韩丨制服丨中文|在线| 台湾佬中文娱乐网久久久久久久久久com | surenchaopeng| 91日产欧美| 精品国产99| 亚洲综合性网址| 久久偷偷色综合蜜桃| 啊啊啊不要好爽日韩无码一区| 婷婷美人网| 99热精品青草在线| 啊啊啊啊二区好大| 物业黑人 AV一区| 欧美色图自拍| 亚州男人天堂| 人人干黄色| av无码av无码专区| 亚洲美女自拍偷拍视频| 日本三级中国三级99人妇网站| 日产狠狠干| 九九九网页| 精品人妻一区二区三区视频| 老司机免费视频在线91| 96超碰网| 啪啪性爱免费视频| 久久国产热视频97电影| 超碰成人免费| 五月激情啪啪| 久久久久久中文版| 久久午夜神马| 性无码专区2020| 中国国国产一级特黄毛片| 亚洲 日韩 欧美 国产综合体| 2010男人的天堂| 丝袜av一区二区三区| 日韩欧美天堂| 国产精品99精品视频网站| 天天躁日日躁XXXXYY| 涩五月婷婷| 久久久禁| 立川理惠被中出无码| 精品人体无圣光凹凸| 久久精品国产精品亚洲艾通辽熟妇 | 欧美啪啪色吧在线| 日本不卡二区| 抽插无码高清一区| 9久久美女首页| 日夜尻逼网| 国产一区二区在线播放量| 717影院理论午夜伦八戒| 大鸡吧尹人在线| 国产97/欧美| 一级性爱视频免费在线| 91狠狠色丁香婷婷综合久久| 伦理弟一页| 97在线观| 日本99视频| AV色图| 日本成a人v网站在线观看| 黄色av一区二区在线| 亚洲精品97在线| 91亚洲图片| 欧美性爱精品一区二区| 亚洲国成人情色好看电影| 亚洲色交| 伊人成人中文字幕久久网| 亚洲 综合 第一页| av在线不卡一区二区三区| 欧美男女午夜啪啪| 欧美劲爆第一页| 国产精品青草综合久久| 亚洲人妖网| 在线综合 亚洲 欧美中文字幕| 亚洲色图久久成人| 97精品一区二区视频在线观看| 久久人人舔人人爽舔人人av片| 10000部十八禁看电影| 在线97视频| 欧美|91色综合| 精品国产乱码久久久影院| 偷拍自拍在线视频观看| 看看日B真人视频| 色翁荡息又大又硬又粗又爽| 天天看特黄的免费网站 | 国产欧美伊人| 白嫩少妇| 男人的天堂2018.| 亚洲色图欧美色图另类图片| 麻豆2区1区天美| 91天堂网| 日韩精品三区四区| 亚洲激情在线观看一区| 色天使大香蕉| 国产专区第一页| 色偷偷超碰亚洲| 人人摸人人摸人人干| 人人妻人人色一区二区三区| av中文在线| 综合亚洲网| 91久热这里只有精品| α√在线| 夜夜国自区| 五月天激情网站| 一区二区不卡视| 97免费视频网| 8050无码八戒| 久久久偷拍| 有码人妻系列| 男女激情黄色网址| 欧亚 另类 久| 日少妇亚洲版| 亚洲 欧美 制服 另类 自拍| 男人天堂网手机版婷婷| 日本在线一二| 人人弄人人摸| 九九久久国产精品怡红院| 天天添天天干电影| 日本国产亚洲一区在线观看| 亚洲天堂美臀在线| 任你艹| 91精品国产91久久福利| 精吧天堂| 久久美女国产| 日日夜夜免费| 91碰碰| 天天干,天天日| 一级岛国大片| 一区二区三区看视频| 美女啊啊啊啊啊啊啊| 大香蕉久| 97香蕉网| 亚洲日本天堂| 91网亚洲| 天天干天天做| 欧美精品23| 99rre在线精品99re8| 欧美暴力猛交| 欧美精品99久久久| 狠狠操夜夜| 亚洲欧美日韩偷拍色图| 欧美日韩国产人人| 少妇蜜汁| 九九热在线精品视频| 久久少妇| 国产精品禁久久久精品| 亚州 综合 色图| 日韩熟女乱伦中出| 日韩视频中文字幕| 国产蜜臀精品一区二区尤物| 婷婷久草一区二区三区| 国产福利小视频高清在线观看| 日本乱人伦片中文三区| 亚洲性图91| 国产人伦精品一区二区三区| 五月丁香婷婷综合网| 婷婷超| 日本二三四区| 另类图片五月天| 亚洲诱惑| 亚洲AO在线| 亚州操操穴网| 日韩素人无码一区二区三区三州| 一区二区三区免费岛国片| 老熟女搡BBBB搡BBBB视频| 久久免费少妇| 黄页| 日韩有码专区| 69一区二区三区 | 久久一区二区三区入口| 大香蕉强奸乱伦| 中国AV美女| 免费久久一级毛片大黄| 手机午夜电影神马久久| 国产精品久久久亚洲第一牛牛_在线观看| 免费超碰97久久| 夜夜操一区二区| 综合网亚| 九九九九九精品十六| 久久久久9| 殴美牲| 麻豆久久久久久久久丝袜| 国产视频一区二区在线观看| 久久久一级| 婷婷五月色| 麻豆视频test| 精品美女在线视频| 亚洲国产一区二区三区在线| 抽查国产福利主播| 成人一区二区三区四区| 亚洲91网。| 天天操美美| 久久久草草精品| 亚洲97资源| 久久久蜜桃臀无码视频| 久久性爱视频免费看| 亚洲色图欧美一区二区不卡| 69av一区二区三区| 亚洲精品人妻在线| 免费在线观看国内色片网站网址| 国产福利小视频高清在线观看| 2018色综合天天操| 国产精品久久久久综合| 国产精品国产拍高清AV| 蜜臀久久一区二区| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 亚洲精品丝袜| 亚洲天天精品| 好吊色青靑草| 无码高清操逼| 久操视频资源站公开| 天天插天天射| 色婷婷综合久久中文字幕雪峰 | 精品中文字幕一区二区| 久久国产热视频97电影| 国产精品色色| 国产乱码精品久久久久久 | 多乙久久久久久| 国产原创自拍| 亚洲第一色页夜| 亚洲天天天| 高清在线不卡一区二区 视频| 美女午夜福利免费视频| 99视频精品| 玖玖资源中文字幕制服丝袜| 欧美天天影院| 亚洲成人激情小说视频| 午夜理论片在线观看免费| 激情四射婷婷四五月天| 日夜干射色啊| 99无码| 美女被艹尤物视频| 亚洲五月婷婷| 伊人aaa| 成人羞羞视频国产| 亚洲中文字幕精品久久久久久直播| 欧美日日网| 九九热只有精品| 韩国一级AAA| 五月婷婷综合网| 韩国嫰模上门援交视频| 日韩免费高清大片在线| 97av在线视频| 智利AV在线网| 国产黄色在线播放观看| 日日干日日| 99re在线视频| 亚洲人妻在线一区| 秋霞男人网| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 激情久久久| 97超碰久| 1级午夜影院费免区| 九九热精品免费视频| 日日嗷| 秋霞影音一区二区三区| 亚洲国产精品久久久男人的天堂| 国产精品农村妇女| 午夜丁香婷婷| 黄色交缠性感爆操91国产精品免费一区二区三区| 翔田千里AⅤHD无码| 亚洲.欧美.丝袜.中文.综合| 精品无av| 成片免费播放| 国产吹潮女在线观看| 看一级特黄a大一片| 亚洲综合小视频小说在线观看| 欧美第二页| 99操碰| 欧洲视频在线| 五月丁香综合| 丰满欧美放荡少妇在线| 92午夜免费福利视频| 呦女网站| 中文字幕国产在线天堂| 99少妇精品视频| 成·人免费午夜在线观看| 天天肏美女| 国产综合久久久麻桃个| 久久久草成人网站久久久草成人久久久草久久久 | 麻豆成人AV| 久久国产三区| 国产亚洲深夜激情| 欧美人妻中出| 18禁免费视频| 亚洲欧美啪啪| 狠狠综合网| 东北操逼| 怡红院一区二区熟女人妻| 一区二区不卡免费| 精品丝袜无码一区二区三APP| 亚洲人妻AV| 青娱乐91| 青青操在线亚洲视频观看欧美在线| 亚欧免费| 亚洲女人毛茸茸91| 亚欧国产无码精品在线| 国产精品久久久久久久久久久久久久吹| 香蕉在线一区二区三区| 亚洲欧美另类小说| 日韩精品99久久久久久中文字幕| 久久精品毛片免费不卡| 97日韩欧美亚洲| 香蕉婷婷| 天天做天天爱夜夜爽毛片试看| 91精品国久久久久久无码| 17c嫩草51久久91嫩草| 91偷拍欧美亚洲| 色哟哟511老熟女| 2020中文字幕在线观看| 人妻天天操天天爽视频免费| 日日噜噜夜夜狠狠视频无| 亚洲脚交| 欧美五区| 日本国产欧美高清在线| 香蕉人欧美综合| 欧洲精品久久| 日韩av乱伦| 俺去啦俺来也久久综合| 亚洲色天堂九9| 九九九午夜| 欧美亚洲另类在线蜜桃| 78久久| 亚洲欧美日韩中文久久自慰| 日韩97视频!在线| 国产AV色黄看到爽| 精品人妻丰满熟妇一区二区三| 玖玖综合色| 日韩欧美字幕亚洲一区二区| 日韩电影在线观看网址| 国内精品久9| 熟女天天干| 亚洲欧美在线观看2021| 囯产精品久久久久久久久久梁医生| 欧美爱国产综合、| 亚洲人妻熟妇三十三区| 色优久久| 日本精品高清一二区一本到| 欧美日韩插逼视频| 女人的天堂大香蕉网| 国产在线76页| 99综合免费视频| 91足交| av黄图片在线观看| 夜夜欧美 | 日本三级日本三级99| 国产 日韩 欧美一区| 天天天干977| 夜夜操夜夜高潮夜夜爽国产精品区| 日本精品人妻少妇一区二区| 亚洲黄网在哪免费看| 色五天伊人| 成人一道本免费视频| 俺也射| 超碰97久久国| 亚洲大胆人体av| 中文字幕天天天天天| 色综合久| 久热大香蕉| 日本护士高潮| 国产粉嫩出水在线播放| 中字幕人妻一区二区三区| 日韩兔费看黄片| 酒色综合网| 久久尹人大香焦视| 欧洲站一级二级三级h| 丝袜色综合| 土豪酒店各种姿势玩弄极品幼稚| www.高清无码诱惑一区.com | 高清有码一区二区| 日本大香蕉综合网红本杳社区| 欧美小说区视频区| 精品少妇一区二区| 久夜操| 色九九九九九九| 小电影欧美91| 啊啊啊啊好多水| 91狠狠综合网| 精品无吗m| 在线视频97| 成 人 A V免费视频在线观看| 熟女乱3伦999| 蜜臀一区二区三区在线| 亚洲巨爆乳一区二区三区四季网| 色欲久久久久综合网| 另类图片欧美激情综合| 国产精品视频内谢女人| 97超碰人人操人人操| 久久受www免费人成| 亚洲欧美自拍偷拍| 日韩综合无码色欲vv| 亚洲日韩美女中文字幕乱| 全免费a敌肛交毛片免费| 日韩AV一起草| 另类在线| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 91狠狠综合久久久久久| 丝袜性亚洲| 国产亚洲日本| 97色欧洲| 蜜臀久久99精品久久久久久-DVD| 一二三区操逼国产91| 日韩性爱毛片操骚逼| 国产女性无套 免费观看| 免费看欧美美女黄色大片| 亚洲 日韩 欧美 国产综合体| 亚洲天堂性爱| 中文字幕视频免费| 久久精品六区| 午夜成人爽爽爽爽A片李冰冰| 亚洲激情在线观看一区| 乱伦熟女区| 色色99| 女人的天堂大香蕉网| 欧美日韩中文字幕不卡| 国产辣妈在线视频福利| 人人操人人操人人人操| 亚洲综合精品国产一区| www四虎| 91精品久久久久久77777| 伊人麻豆传媒| CCYY草草影院地址入口| 亚洲图片偷拍视频区| 国产农村妇女精品一| 999热日韩精品| 一级毛片电影免费看| av天堂手机版追回| 午夜天堂网| 91色欧美| 100啪啪视频大全| 亚洲色婷婷| 精品人妻一二三四区视频| 久久精品黄色| 强奸国产在线| 久久国产三区| 亚洲久草AV色图| 欧美日韩国产另类综合| 9久综合网| 91少妇香蕉久久精品| 91老熟妇| 大香蕉丝袜一级片| 日本久久999| 久久精品久| 九月丁香婷婷| 亚洲影视高清第一页| 国产成年精品高清在线观看91| 视频二区美腿丝袜制服人妻欧美 | 国产91精品在线免费| 岛国网址国产| 日本伦理一区二区| 中文字幕在线免费观看| 亚洲欧美精品福利在线| 亚洲性图91| 欧美日韩国产成人高清| 乱人伦 国语对白:视频直接看| 大白逼三四级| 思思性爱| 九九热精品| 亚洲欧美激情小说| 户外裸露刺激视频第一区| 超碰在线97国产| 日本1区2区不卡视频| 日韩有码一区三区| 天堂综合网| 91麻豆天美国产欧美| 欧美日韩亚洲天堂| 久久亚洲欧美中文字幕国语| 人人妻人人操人人乐| 大色综合| 久久精品亚洲婷婷| 在线a亚洲视频播放在线| 99热色精品| 丰满人妻一区二区三区四区| 五月丁香婷婷综合网| 色色97爱| 一本久道久久综合狠狠爱| 亚洲熟女少妇免费视频| 成人三级片无码| 亚洲激情欧美色图| 美日韩成人| 97天天在线| 久久欧美性爱视频| 竹菊一区二区三区AV线| 综合久| 五月情色天| 一起草av| 青青在线视频日韩欧美| 日韩99999色| 午夜无遮挡男女啪啪视频| 白丝少妇一区二区| 亚洲自拍天堂| 和协无码影院| 久久成人国产精品| 精品网站99999| 韩国成人精品久久久免费看| 亚洲加勒比久久日本道| 日本精品一区二区三| 亚洲精品熟妇1区2区3区。| 九九综合久久中文字幕| AV色五月| 手机看片日韩人妻| 91精品人妻啪啪间| 99色色网| 亚洲一区二区三区春色| 蜜臀99999| 国产宅男宅女在线观看| 0755午夜福利视频| 欧美三级一级| 久久美女国产| 亚洲情色 欧美| 美女啊啊啊啊啊啊啊| av天堂精品久久| 啊啊啊慢点| 91麻豆天美传媒HD| 国产 v乱码一区二| 果冻传媒A片麻豆熟妇人妻| 亚洲A色| 91精品丝袜在线观看| 91色色网站| 蜜桃臀AV在线| 一二三区在线| 黄色在线网站| 欧美色图亚洲色| 中文字幕第23区| 中文高清一区二区的| 国产辣妈在线视频福利| 成年人免费观看网站| 欧美性天天影视| 九九探花视频在线观看| 国产精品九九九| 人人妻人人色| 亚洲综合色男人网| 懂色AV蜜臀无码精品APP| 婷婷婷婷婷婷久久久久| 玖玖大干人妻| 国产成人+综合亚洲+天堂| 久久久久久国产成人| 国产精品久久久亚洲第一牛牛_在线观看 | 长长久久88视频| 国产极品99热在线播放69| 伊人操| 老鸭窝在线视频播放| 男人久久精品| 中文字幕永久在线| 日本www操操操| 日韩精品一区二区高清| 精品久久久久久久| 欧美图片色五月天| 99这里只有精品| 岛国大片在线观看网站入口| 搡老女人老熟女91| 校园激情狠狠四射| 亚洲人综合| 男人把坤坤插入女人的下体| 99色视频| 九九久久99| 一区二区三区视频在线观看免费| 最新日日夜夜天天干干| 蜜臀久久99精品久久久电影| www.acm成人黄色毛片| 色婷婷淫色网| 和协影院中文字幕三区| 免費人妻夜夜爽天天爽爽一区| 日本高清电影欧美色图| 欧美日韩操逼动图| 午夜AV人气不卡| 一级毛片久久久久久久女人18| 日韩欧美性爱电影在线观看| 综合网 欧美| 殴美性天天| 夫妻AV网站| 亚洲日精品| 四虎在线视频| 五月天婷婷社区| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 色999五月色| 韩国女主播青草福利视频| 开心五月天激情网| 夜夜影视四色| 一级特级aaaa毛片免费观看| 亚洲国产欧美一区二区潘金莲| 偷拍 欧美 日韩| 亚洲在线网站| 日本影视久久免费| 91精品无码久久久久久久| 亚洲中文字幕熟女| 日本黄大片在线观看视频| 免费观看网黄| 天天操天天射天天日| 无码久久亚洲高清,| 国产精品ⅴ无码大片在线看.| 国产亚洲精品A在线观看下载| 国产中文字幕在线点播| 亚洲 欧美 偷拍 唯美| 天天操妹子| 人妻丝袜美腿中文字幕|