久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

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

Java全棧物聯(lián)網(wǎng)平臺源碼解析:從協(xié)議接入到Web組態(tài)大屏 簡介基于 Java 主流技術棧SpringMVC、Spring、MyBatis與 MySQL 構建的物聯(lián)網(wǎng)監(jiān)控平臺源碼界面由 HTML、jQuery、CSS 實現(xiàn)適用于工業(yè)設備監(jiān)控、智能家居環(huán)境監(jiān)測等場景面向需要快速搭建數(shù)據(jù)采集與遠程控制系統(tǒng)的開發(fā)者或運維人員。系統(tǒng)集成 TCP/IP、HTTP、MQTT 等通訊協(xié)議可無縫對接??禂z像頭并具備報警信息管理、自動控制觸發(fā)、歷史數(shù)據(jù)查詢與報表導出、子賬戶與場景授權等完善功能。壓縮包約 832.96MB共 2000 個文件以 jsp、java、js、css 前后端代碼為主附帶 sql 數(shù)據(jù)庫腳本、xml 及 properties 配置、pdf 與 doc 文檔方便二次開發(fā)和部署維護。目前已有 245 人學習下載文檔齊全、目錄結構清晰可幫助讀者節(jié)省大量自研時間是一套值得參考的成熟物聯(lián)網(wǎng)監(jiān)控解決方案。1. 一套 Java 全棧物聯(lián)網(wǎng)平臺源碼能替你省掉的是協(xié)議棧和組態(tài)這兩件難事做物聯(lián)網(wǎng)平臺的人都有個共同感受設備接入和組態(tài)畫布這兩件事比想象中耗時得多。一臺 Modbus 設備、一個 MQTT 傳感器、一路??禂z像頭協(xié)議各不相同每接一種就要寫一遍解析、斷線重連、數(shù)據(jù)入庫組態(tài)更是從零開始畫圖元、做屬性綁定、調(diào)實時刷新。這套基于 Java 全棧技術的物聯(lián)網(wǎng)平臺源碼把組態(tài)、大屏可視化和通訊協(xié)議集成MQTT、TCP、??禂z像頭打包在一起意味著你拿到的不是一套空殼代碼而是一條從設備數(shù)據(jù)到瀏覽器頁面的完整鏈路。如果你正在評估是自研還是基于源碼二次開發(fā)這篇文章會告訴你這套源碼怎么拆、怎么跑、坑在哪。2. 先拆解這套源碼組態(tài)、大屏、協(xié)議接入各自想解決什么問題2.1 Web 組態(tài)把傳統(tǒng)組態(tài)軟件的能力搬進瀏覽器到底少了什么傳統(tǒng)組態(tài)軟件像 WinCC、KingSCADA裝在 Windows 上拖拽圖元、配置采集驅動功能很全但二次開發(fā)基本走封閉接口。Web 組態(tài)的思路不同前端用 SVG 或 Canvas 畫圖元把圖元的位置、顏色、數(shù)據(jù)源保存成 JSON后端只負責存儲和推送實時值。運行時瀏覽器拿著 JSON 渲染畫面再通過 WebSocket 接收數(shù)據(jù)刷新。這套 Java 全棧源碼里的組態(tài)模塊常見做法是前端 Vue SVG后端存組態(tài)模板和設備綁定關系。好處是部署簡單客戶打開瀏覽器就能看省掉插件安裝。代價是復雜動畫、歷史曲線回放、報警聯(lián)動這些傳統(tǒng)組態(tài)自帶的能力在 Web 組態(tài)里往往需要自己補。源碼里一般內(nèi)置了基礎圖元庫比如管道、閥門、儀表、傳感器圖標夠畫流程工藝圖。你要是想把它做成類似 WinCC 那種重型畫面就得往圖元腳本和動畫編輯器里加代碼。組態(tài)的核心不是畫布渲染而是圖元和數(shù)據(jù)源的綁定。一個溫度計圖元綁定設備的 temperature 屬性運行時后臺把最新值推到前端圖元指針跟著轉。這個綁定關系的數(shù)據(jù)結構設計決定了組態(tài)好不好擴展。源碼里通常會有類似dataSource: { deviceId: dev001, property: temperature }的 JSON 配置圖元組件統(tǒng)一讀取這個字段再訂閱對應的實時通道。理解了這條鏈路你看組態(tài)模塊的源碼就有主線了。2.2 可視化大屏從設備數(shù)據(jù)到頁面像素的完整鏈路可視化大屏是物聯(lián)網(wǎng)平臺的招牌功能。工廠產(chǎn)值、設備在線率、報警數(shù)量、環(huán)境溫濕度全堆一個屏上。大屏的數(shù)據(jù)鏈路比組態(tài)更長設備上報 → 協(xié)議網(wǎng)關解析 → 后端業(yè)務處理 → 寫入數(shù)據(jù)庫 → 推送通道 → 前端圖表渲染。任何一環(huán)慢了大屏就出現(xiàn)數(shù)據(jù)斷層。源碼里大屏常見的數(shù)據(jù)推送方式有兩種一種是大屏頁面直接訂閱 MQTT繞過后端業(yè)務層另一種是后端轉發(fā)到 WebSocket前端再訂閱。我更推薦后者。因為大屏需要展示的不只是原始測量值還有聚合結果比如最近一小時的平均溫度、設備故障率。這些計算放在后端做前端拿現(xiàn)成數(shù)據(jù)渲染鏈路更穩(wěn)。直接訂閱 MQTT 雖然實時性高但長時間大流量下前端很容易被消息淹沒也不方便做權限控制。大屏和歷史數(shù)據(jù)是綁在一起的。常見方案是后端定時把設備數(shù)據(jù)從 Redis 或 MySQL 聚合到一張大屏統(tǒng)計表前端展示時先查一次歷史數(shù)據(jù)再訂閱實時增量。這套源碼里的大屏模塊一般會提供設備總數(shù)、今日報警數(shù)、實時曲線這幾個基礎組件你可以照著擴展。做二次開發(fā)時先摸清大屏接口返回的字段和推送消息的格式再動手改圖表。2.3 協(xié)議接入層MQTT、TCP、海康攝像頭在源碼里的位置協(xié)議接入層是物聯(lián)網(wǎng)平臺的地基。源碼里這一層通常分三個入口MQTT 客戶端、TCP 服務端、攝像頭拉流服務。MQTT 負責傳感器、DTU、智能儀表這類小數(shù)據(jù)量設備按主題訂閱消息體多用 JSON。TCP 服務端負責 PLC、控制器、防火墻一類走自定義幀協(xié)議的設備需要做報文解析。??禂z像頭則走獨立通道用 RTSP 拉流再轉成 HLS 或 WebRTC 供前端播放。三層接進來后數(shù)據(jù)必須統(tǒng)一收口。源碼里一般設計一個DeviceMessage內(nèi)部模型包含設備標識、屬性名、數(shù)值、時間戳。MQTT 回調(diào)、TCP 解碼器、攝像頭告警事件最終都轉成這個模型再交給消息隊列和業(yè)務層。統(tǒng)一模型的好處是上層做告警、存儲、大屏不用關心底層是什么協(xié)議。你接新設備時只需要把新協(xié)議解析成DeviceMessage其余鏈路不用動。選型和架構說完了下面進入實際操作。把源碼跑起來你會遇到第一個問題環(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 起。我習慣先看pom.xml再定 JDK省得啟動時碰到UnsupportedClassVersionError。數(shù)據(jù)庫這塊MySQL 8 是主流注意驅動要配套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ù)、訂閱關系出了問題好排查。部署時我把 EMQX 裝在獨立服務器避免和業(yè)務應用搶資源。環(huán)境版本搭配參考下表避免頭疼組件推薦版本備注JDK8 或 17看 Spring Boot 主版本MySQL8.0必須 utf8mb4 字符集Redis6.x/7.x用于緩存和實時數(shù)據(jù)MQTT BrokerEMQX 4.x/5.x或 MosquittoNode.js16/18前端構建按 package.json 要求3.2 初始化數(shù)據(jù)庫建庫腳本、時區(qū)和 utf8mb4 一個都不能少數(shù)據(jù)庫是源碼跑起來的第一道坎。源碼目錄里一般有個sql/文件夾里面放iot_platform.sql。我習慣先手動建庫指定字符集和排序規(guī)則再導入數(shù)據(jù)避免 MySQL 默認 latin1 導致中文亂碼。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 和生僻字第二條命令導入建表語句和初始化數(shù)據(jù)。如果導入報Unknown database說明第一條命令沒執(zhí)行成功先確認 MySQL 登錄權限。導入完成后用show tables;檢查是否有設備表、規(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 驅動用的和數(shù)據(jù)庫字符集無關但業(yè)內(nèi)習慣寫上serverTimezoneAsia/Shanghai防止 MySQL 8 的時區(qū)報錯。Redis 密碼如果沒有留空。還有人會漏掉web端口配置確認server.port是你要的端口默認 8080。3.3 按順序啟動后端、協(xié)議網(wǎng)關、前端以及驗證標準啟動順序有講究。先啟動 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讓進程在后臺運行日志重定向到logs/app.log。前端npm install第一次可能很慢掛代理也常見耐心等。驗證標準后端日志出現(xiàn)Netty server started或Tomcat started on port(s): 8080說明啟動成功。然后訪問http://localhost:8080/api/health返回{status:UP}。前端頁面能登錄、能看到默認的組態(tài)畫面和大屏模板說明源碼環(huán)境跑通了。這個健康檢查接口如果 404就看日志里有沒有DispatcherServlet報錯。4. 設備接入與組態(tài)綁定實操MQTT、TCP、??禂z像頭怎么打通4.1 MQTT 接入訂閱設備消息、解析 payload 并寫入業(yè)務表大多數(shù) IoT 源碼都會用 Eclipse Paho 或 Spring Integration MQTT 做客戶端。核心是訂閱設備上報主題把payload轉成業(yè)務數(shù)據(jù)。先看一個典型的訂閱回調(diào)代碼。Component public class MqttMessageHandler { Autowired private DeviceDataService deviceDataService; public void handleMessage(String topic, byte[] payload) { // 過濾非設備主題避免處理系統(tǒng)消息 if (!topic.startsWith(device/)) { return; } String body new String(payload, StandardCharsets.UTF_8); // 假設 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ù)據(jù)服務落庫并推送到實時通道 deviceDataService.savePoint(deviceId, temperature, temperature); } }邏輯說明這個方法只關心device/開頭的主題防止 MQTT 系統(tǒng)消息混入業(yè)務線程。解析 JSON 后把設備 ID、屬性名、數(shù)值傳給savePoint這一步就是統(tǒng)一收口。你接新設備時只需要改 payload 解析這一段后面的入庫、推送、告警邏輯不用動。參數(shù)說明QoS 建議用 1保證消息至少送達一次同時避免 QoS 2 的性能開銷。Broker 端配置max_message_rate等參數(shù)前先壓測再調(diào)不要盲改。clientId必須唯一否則 Broker 會先踢掉舊連接出現(xiàn)反復斷連。4.2 TCP 接入解決粘包/半包自定義報文長度字段TCP 設備接入復雜度比 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回到標記位置等下一次數(shù)據(jù)到達。out.add輸出的就是完整的一幀字節(jié)數(shù)組業(yè)務層拿到后不再關心字節(jié)邊界。TCP 設備協(xié)議千差萬別常見的有 Modbus、自定義頭部CRC 校驗、JSON 換行符分隔。我把解碼器設計成策略模式每種協(xié)議一個FrameDecoder通過工廠類注冊進去。業(yè)務 handler 接收解碼后的幀再按協(xié)議類型解析。這個分層能省掉后期很多改協(xié)議的痛苦。4.3 ??禂z像頭接入RTSP 拉流、鑒權過期與 Web 播放??禂z像頭接入到 Java 平臺最穩(wěn)的方案是后端用 FFmpeg 拉 RTSP 流轉成 HLS 分片前端用 video.js 播放。先看 FFmpeg 轉流命令。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強制走 TCP避免 UDP 在弱網(wǎng)下丟包花屏/Streaming/Channels/101是??抵鞔a流102是子碼流預覽用子碼流更流暢-hls_time 2每個分片 2 秒hls_list_size 3只保留 3 個分片降低延遲。這個命令在 Java 里用ProcessBuilder啟動注意定期檢查進程是否存活。攝像頭鑒權有個常見坑海康攝像頭空閑一段時間后會要求重新鑒權FFmpeg 進程還在但流已經(jīng)不更新了。我一般在 Java 里定時比如每 30 分鐘檢查 FFmpeg 進程輸出如果接收不到數(shù)據(jù)或者返回碼非零就殺掉進程重新拉起。另外并發(fā)拉流很吃帶寬如果 20 個攝像頭同時推主碼流服務器帶寬直接打滿。我的做法是預覽用子碼流 轉碼錄像才用主碼流。很多平臺為了省資源會直接在前端用 WebRTC 播放但??禂z像頭原生不支持需要ZLMediaKit或SRS做二次轉封裝。如果這套源碼里沒有包含流媒體服務器用 FFmpeg 轉 HLS 是最省事的方式延遲 3-5 秒對于監(jiān)控畫面足夠。4.4 組態(tài)與大屏把設備數(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ù)據(jù)后根據(jù)deviceId和property找到對應圖元通過 WebSocket 推送新的數(shù)值。aggregate字段表示取值策略latest是最近一次值也可以寫成avg_1m表示最近一分鐘平均值。前端收到推送后更新圖元代碼結構大致如下。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)儀表盤轉指針閥門圖標變色數(shù)字直接更新。大屏圖表比如 ECharts 折線圖同理訂閱device_point主題往series里追加數(shù)據(jù)再做時間戳窗口裁剪。組態(tài)模塊最容易設計混亂的是「保存」和「運行」兩條路徑。編輯時前端是畫布組件保存時把整個畫布的 JSON 提交后端運行時畫布組件進入只讀模式后端只推數(shù)據(jù)。兩邊狀態(tài)要分離否則畫布一刷新編輯狀態(tài)丟失。這套源碼里如果發(fā)現(xiàn)保存后回到運行頁圖元位置變了多半是這兩個模式的數(shù)據(jù)沒有做隔離。5. 避坑與排查這套物聯(lián)網(wǎng)平臺源碼在生產(chǎn)前最常見的 5 個坑5.1 設備連上又掉線心跳和 keep-alive 參數(shù)互相打架現(xiàn)象用 MQTT 測試工具連平臺發(fā)一條消息后幾十秒內(nèi)設備就顯示離線日志里能看到 MQTT 客戶端不斷重連。原因設備端設置了自動休眠或者心跳發(fā)送間隔大于 Broker 的keep_alive超時時間。MQTT Broker 在超過 keep_alive 時間沒收到客戶端心跳包就判定客戶端掉線主動斷開連接。很多傳感器為了省電上報間隔 60 秒但 Broker 默認keep_alive只有 30 秒自然會被踢。解決排查兩端參數(shù)。EMQX 里調(diào)整keep_alive到 90 秒或者修改設備端的heartbeat_interval為 20 秒。另外設備必須支持發(fā)送 MQTT 心跳包PINGREQ有些模塊自帶心跳但默認關閉需要打開。這個坑最折磨人因為現(xiàn)象是「連接不穩(wěn)定」但不報錯只能靠抓包確認。5.2 數(shù)據(jù)已入庫但大屏不刷新WebSocket 推送與回查的時序問題現(xiàn)象數(shù)據(jù)庫里能看到最新設備數(shù)據(jù)但大屏頁面上的數(shù)值一直停在幾分鐘前刷新頁面才恢復。原因后端寫入數(shù)據(jù)庫和推送 WebSocket 消息不是同一個事務。如果先推送再提交前端拿到的是未提交數(shù)據(jù)數(shù)據(jù)庫回滾后前端就顯示了一個不存在的值如果先提交但推送失敗前端沒有新數(shù)據(jù)。還有一種是用戶開了兩個瀏覽器標簽其中一個頁面斷開了 WebSocket 但代碼沒有自動重連。解決用 Spring 的TransactionalEventListener(phase TransactionPhase.AFTER_COMMIT)監(jiān)聽事務提交事件再推送消息保證拿到的數(shù)據(jù)一定已落庫。前端統(tǒng)一封裝 WebSocket 重連邏輯斷線后指數(shù)退避重連避免重連風暴。另外大屏的接口要設計成「先查一次全量再訂閱增量」不要只依賴推送否則斷線期間的數(shù)據(jù)就丟了。5.3 海康攝像頭畫面卡頓或黑屏碼流參數(shù)與鑒權并發(fā)現(xiàn)象攝像頭接入平臺后預覽畫面每隔幾分鐘卡一次嚴重時黑屏FFmpeg 日志報錯method OPTIONS failed: 401 Unauthorized。原因??禂z像頭默認開主碼流4K 分辨率高碼率服務器帶寬和轉碼能力扛不住另一個是 RTSP 鑒權過期FFmpeg 進程還活著但已經(jīng)失效。如果多個頁面同時看同一路攝像頭FFmpeg 會發(fā)起多次拉流浪費資源。解決預覽統(tǒng)一用子碼流地址后綴用102分辨率降到 1280x720碼率限制在 512kbps。用一條 FFmpeg 進程拉流再通過 HLS 分發(fā)給多個前端避免每個瀏覽器各自拉 RTSP。寫一個定時任務每 5 分鐘檢查 FFmpeg 進程的stderr一旦出現(xiàn)401就殺掉進程重啟。黑屏時先看 FFmpeg 日志不要盲目重啟。5.4 組態(tài)圖元保存后又變回原樣緩存和版本號沒對上現(xiàn)象在組態(tài)編輯器里拖動圖元、修改顏色點擊保存提示成功但刷新頁面后又回到舊布局。原因前端在保存時把整份畫布 JSON 提交給了后端但后端圖元數(shù)據(jù)是緩存到了 Redis保存只更新了 MySQL刷新時前端請求先打到 Redis取到的是舊緩存。還有的源碼做了一層版本號控制但編輯器的保存接口沒有遞增版本號導致新數(shù)據(jù)覆蓋不了舊緩存。解決先看后端保存接口有沒有設置CacheEvict。如果沒有手動在saveDiagram方法上加上清除對應畫布的 Redis key。如果源碼用的是版本號方案確認前端每次保存時攜帶version 1后端做樂觀鎖比較沖突時提示用戶重新加載。這個坑屬于源碼邏輯不嚴謹改起來不復雜但影響體驗很嚴重。5.5 TCP 上報數(shù)據(jù)亂碼報文定界必須放在業(yè)務解析之前現(xiàn)象串口和 TCP 設備上報的數(shù)據(jù)到平臺后臺字符串頻繁出現(xiàn)亂碼或多字節(jié)拼接錯誤十六進制看是兩個半包拼接。原因設備端響應慢數(shù)據(jù)分多次到達 Netty 的 channelRead業(yè)務 handler 拿到每個 ByteBuf 就開始解析沒等完整幀?;蛘哒嘲鼤r沒有按長度切分把兩個數(shù)據(jù)幀的尾部和一個數(shù)據(jù)幀的頭拼在一起。解決檢查解碼器是否在decode里輸出了完整的數(shù)據(jù)幀。Netty 準則是解碼器只負責定界業(yè)務 handler 只負責解析內(nèi)容。我用的是 4.2 節(jié)的DeviceFrameDecoder先把長度頭解析出來等完整數(shù)據(jù)到齊了再out.add。業(yè)務 handler 里再按照協(xié)議格式比如 JSON 或二進制結構解析。這個坑的排查手段是抓包把收到的原始字節(jié)流 dump 下來確認粘包和半包現(xiàn)象再改解碼器。6. 進階把協(xié)議接入層改造成適合自己業(yè)務的插件式框架6.1 抽象協(xié)議接口新增一種設備協(xié)議需要動哪幾個類設備接入的終極形態(tài)是插件化。定義一個統(tǒng)一接口MQTT、TCP、攝像頭各自實現(xiàn)再通過工廠注冊。public interface DeviceAdapter { // 解析出的標準消息統(tǒng)一交給上層 void onMessage(DeviceMessage message); // 啟動連接 void start(); // 停止連接 void stop(); }邏輯說明新增一種協(xié)議時只需要新建一個實現(xiàn)類在start()里啟動 Netty 服務、MQTT 訂閱或 FFmpeg 進程在onMessage()里把原始報文轉成DeviceMessage。然后在工廠類里注冊映射比如ProtocolType.TCP - TcpDeviceAdapter。上層業(yè)務不用改。6.2 數(shù)據(jù)存儲優(yōu)化時序數(shù)據(jù)按天分表別讓 MySQL 扛全量設備采集數(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 插入。查詢時也按日期路由。配合定時任務清理 90 天前的數(shù)據(jù)MySQL 壓力可控。更極端的方案是引入 TDengine 或 InfluxDB但那是后話。6.3 上線前驗證用模擬器壓測 MQTT 與 TCP 接入上限正式上線前我會寫一個模擬器用多線程同時建立 MQTT 連接隨機 topic 上報。MySQL 和 Redis 的監(jiān)控看 CPU 和連接數(shù)。TCP 壓測用 Netty 客戶端并發(fā)連接每個連接定時發(fā)長度固定報文。壓測時注意生產(chǎn)環(huán)境的連接數(shù)限制先測 1000 個并發(fā)再逐步加到 5000看服務端 GC 情況和消息延遲。這里有個血淚經(jīng)驗壓測通過不代表上線穩(wěn)因為模擬器數(shù)據(jù)規(guī)律性太強真實設備的抖動、斷線重連、亂序報文才是真正的考驗。我習慣壓測時隨機丟包、隨機停發(fā)消息逼著系統(tǒng)走一遍重連和超時分支?;氐介_頭說的問題這套 Java 全棧物聯(lián)網(wǎng)平臺源碼能幫你省掉的是最基礎的協(xié)議棧、組態(tài)畫布和大屏框架但真正適配你的業(yè)務場景協(xié)議插件化、數(shù)據(jù)分表、壓測上線還得自己動手。要是你遇到的是設備報警沒推出來、組態(tài)動畫不絲滑、TCP 報文結構改了一點就解不了包建議先從第 5 章的排查思路入手八成問題都在通道時序和協(xié)議定界上。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
精品国产国产AV| 天天综合91| 日韩精品人妻| 久久免费中文字幕在线观看| 96超碰网| 国产亚洲99久久精品| 色色综合97| 无遮挡男女激烈动态图| 四虎AV在线观看| 久久精品女同亚洲女同13| 亚洲AV噜噜狠狠网址蜜桃动漫| 少妇蜜汁| 国产美女口爆吞精视频| 亚州综合AⅤ| 国产精品美女久久久久久网站| 亚洲第一综合| 精品黄色电影| 激情亚洲天堂| 亚洲国产蜜臀系列在线观看| 爱爱动态试试看6 0秒| 91操操| 女人爽到高潮潮喷18禁网站| 亚州五月| 久久极品伊人| 人人模人人看| 天天日美女的B| 国产操操日韩三级黄| 久久久九九九九| 色婷婷视频| 欧美色图小说综合| 久久国产精品91| 立川理惠被中出无码| 美女97超碰| 日韩精品在线视频在线观看| 欧美亚洲宗合色性图| 国内毛片国产专区二| 欧美一品道| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 思思热国产在线视频| 91丝袜在线视频| 成年女人18级毛片毛片免费观看| 久久久啊啊啊| 亚洲成人精品久久久| 国产av强奸美女| 超碰97在线色男人??| 国产热RE99久久6国产精品首| 蜜臀网 一区| 传媒免费一区二区三区| 九九九久千久久激情蜜桃在线看 | 国产精品青草综合久久| 中文字幕一区二区在线日韩精品| 黄色成年| 热久日综合| 久久欧美性爱视频| 久久丁香久草综合网| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 老司机深夜18禁污污网站| 欧美中文狠| 欧美操人| 国产欧美岛国精品一区| 久草国产在线视频| 91国模| 青青草在线视频欧美| 粉嫩绯色AV一区二区在线| 色综91| 天天综合麻豆视频| 欧美日韩资源在线| 五月丁香| 成人性爱高清视频免费看| 欧美第二页| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 高跟伊人julia ann| 五月天激情四射| 亚洲黄色视频在线观看视频| 久久内射| 无码精品啪啪啪一区二区三区三州| 久久本道| 人妻熟女字幕一区二区| 成人免费不卡在线视频| 韩国三级一线观看久| 青青草一本道福利视频| 日韩欧美资源| 日本黄色裸日本黄色裸体 | 久热影视| 影音先锋每日最新资源在线观看| 国产精品 视频| 中文字幕精品亚洲熟女| 日日夜夜青青草母狗| 伊人天堂在线| 天天看综合网| 婷婷综合五月| 亚洲激情久久| 丁香婷婷啪啪| 男人的天堂亚洲| 国产福利av精彩对白| 看免费的黄片| 亚洲天堂五月天国产| 婷婷爽人人婷婷爽视频| 欧美综合色图网| 色悠久久久av| 熟女高潮合集-永久久久-成人AV| 日本超碰色精品| 60秒试看最爽10分钟网站| 国模一区二区三区| 中文字幕啊啊啊在线观看视频| 人人做人人妻人人夜视频| 久久社区一区二区三区| 亚洲αv一区二区三区| 一级aaaaa欧美中文字幕录像片| 欧美特大AA级黄片| 吖在线不卡一区二区国产剧情| 中文字幕后石码四区五区| 欧美97超碰| 色臀AV| 国产又粗又长视频| 久久少妇| 亚洲无码太久| 在线国产探花| 一卡二卡三卡| 清纯唯美第一页| 日本大香蕉综合网红本杳社区| 78m成人视线| 夜夜躁狠狠躁日日躁av| 懂色aV一区二区天美传媒| 91色拍| 男人的天堂午夜av| 亚洲经典啪啪| 爱干爱射网啊啊啊| 一二三四视频在线社区中文字幕| 色噜噜人妻av中文字幕| 熟女人妻一区二区三区免费看 | nuu12国产麻豆精品| 风月影院男女十八禁| www久久精品| 久久国产精品一区二区| 午夜小电影在线插入淫高潮| 99久国产精品午夜性色福利| 亚洲精品a人片在线观看视| 色噜噜人妻丝袜a∨先锋影| JULIA一区二区三区在线播放| 67914亚洲精品| 97资源免费视频| 亚洲欧美日韩中文久久自慰| 视频不卡中文字幕| 91三级理论片播放器| 欧美久热| 欧美亚洲涩涩| 成人怡红院| 亚洲国产精品99久久久| 色综合久久久久| 欧美91精彩| 怡红院久久老司机| 26uuu性| 五月花婷婷| 丰满搜索结果 -第18页- 久久高清无码| 欧美亚州综合图片| 超碰色老头| 精品中文字幕第一页| 亚洲精品日日夜夜52| 天天看综合网| 视频二区美腿制服人妻欧美| 中文字幕一区二区三区四区在线视频| 婷婷久月| 欧美91久久久久| 国产日本一区二区三区蜜臀在线观看| 高清无码 国产精品| 欧美九九爱| 插入粉嫩少妇视频| 精品久久久久久中文字幕三区 | 久久久久亚洲AV无码专区少妇| 极品极品色影院| 青青草在线视频人人想人人上| 欧美亚洲韩国视频十五区| 成人免费性爱视视| 超碰97色色| 蜜臀久久99精品久久久久久无删减| 久久受www免费人成| 天天爽夜夜操| 日本免费二区三区| 综合色啪| 亚欧操逼片在线观看| 草草影院最新网址| 天操老女人| 亚洲欧美综合| 91亚·色| 乱伦a片视频| 啊啊啊啊啊操我视频| 全国男人天堂网| 黄色av一区二区在线| 伊人国产视频| 超碰在线人妻中文字幕| 福利风月五月天影院| 中文字幕乱妇免费视频| AA丁香综合激情| 国产精品色约约| 深夜国产一区二区三区在线看| 欧美日本久久精品一区| 丰满美女一级毛片在线播放| 人妻夜夜爽天天爽麻豆三区网站 | 日韩免费中文字幕视频| 高清不卡一二三区视频......| 日夜伊人网| 激情五月婷婷| 精品69网| 67194无码不卡| 2023天天操夜夜操| 久久精品老司| 九九热在线视频| 啊啊啊爽爽| 床上啊啊啊一区二区三区| 91中出视频| 麻豆2区1区天美| 啪啪综合网| 天堂av2019| 日韩强奸av| 91五月天| 日本午夜福利影院| av天堂电影网| 欧美婷婷久久| aaaa黄片| 精…码一二三区| 嗯……啊…嗯嗯…啊…好舒服| 波多野结衣之双飞调教在线播放 | 日韩国产品视频中文字| 一级片视频啪啪| 国产熟女二区| 久99热| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 八人操人人摸人人看| 久久久精品一区二区| 性爱av在线免费观看| 日韩无码第3页| AV天天在线观看| 国产久久成人| 东北熟女91| 天天夜夜久久| 黄页视频网站野外| 精品无码秘 人妻一区二区| 抽查国产福利主播| 探花一区在线| 老熟女综合| 精品国产乱码久久久久久口爆网站| 九久久精品| 蜜臀国产AV中文字幕| 大象AV在线| 亚洲综合骚逼| www.婷婷| 亚洲精品xxx| 一本大道青青| 1024亚洲中文字幕久在线看片你懂的| 一本精品日本在线视频精品| 日本一线产区和二线产区伦理片| 一二三啪啪专区| 中文字幕在线观| 97超碰久久色| 九九热超碰| 91精品久久久久五月天精品| 欧美性91| 日韩无码服务区| 久久一二区四| 日韩亚洲美女一区久久| 亚洲国产一区二区三区四区国产| 日韩欧美性爱电影在线观看| 日韩青久久| 很黄很污的免费网站| 玖玖玖玖精品国产剧情| 日日操免费视频| 国产精品老师| 久久精品中文字幕无码l| 欧美激情精品| 日韩中文字幕精品一二三事国产精品| 夜夜操91744565| 超碰九色| 欧美久久伊人| 亚洲av影音先锋| 屁股久久久久久| 午夜福利合集| 欧美综合传媒| 性性欧美| 人人妻人人色| 欧美色图人妻| 亚州综合AⅤ| 欧美熟妇精品黑人巨大一二三区| 制服乱伦| 婷婷色在线| 日本道久久综合色色| 亚洲日韩av专区无码| 久久久91| 欧美AB在线| 日本黄色精品| 日韩成人人妻网站| 日韩内| 亚洲天堂电影网| 青青伊人久久| 蜜桃AV天堂| 九九av| 超碰天天操你比| 亚洲乱色视频一区、二区在线| 色妺妺在线视频| 天天综合色| 大香蕉黄色一区| 插日本熟女视频| 人妻 丝袜美腿 中文字幕| 国产免费一区| 色偷偷超碰亚洲| 国产精品电影推荐| 欧美一二级| 97超碰超欧美。| 欧美 传媒 麻豆 日韩 偷拍| 蜜桃不卡一区二区| 少妇熟女视频一区二区三区| 日韩97视频| 久久久久921| 亚洲日韩欧美一区二区| 欧美综合色| 欧美日韩中文字幕不卡| 97av在线观看| 无码137片内射在线影院| 日本性爰一道本| 日韩欧美中文日韩欧美色| 日韩乱中文| 国产92麻豆天美精品色欲5| 日韩av一级黄片| 巨爆乳肉感一区二区三区竹菊影视 | 岛国999| 97就爱干| 97国产人人| 日本操逼视频在线| 无码av永久免费专区网站| 黄色av一区二区在线| 色五月婷婷中文字幕| 天天弄天天操| 天天日天天操VV| 91超碰丝袜制服| 国产精品久久久 | 天天激情综合站| 中日韩欧美精品无码AⅤ一区二区| 久久鲁干| 青青草日本无码| 粉嫩小泬久久久一区二区| 人妻无码一区二区三区久久99| 国产夫妻性生活视频| 中文字幕黄色一起草| …亚洲黄色厕厕女女在线播…| 翔田千里一区二区三区奶水| 国产精品久久久鸭无码的功能| 五月天婷婷色| 免费超碰97久久| 久久久555| 免费一级特黄特色大片在线观看看| 大香蕉五月天| 国产熟妇一区二区| 69精品久久久久中文字幕| 丁香五月影院| 蜜乳av一区二区三区| 人人操人人肉久久精品| 天天色天天干天天爱| www.狠狠操| 天天舔天天日天天射| 亚洲欧美日韩电影网站一区 | 欧美综合在线91| 欧美日韩小说| 亚洲乱码尤物193YW| 97视频网站在线观看| 久久久久久久9最新免费视频观看| 久久久精精精| 亚洲日韩成人性爱视频| 涩涩久久精品| wwwxxx日本爽| 欧美日韩人人精品| 欧美性夜| 国产亚洲中文不卡二区| 97免费视频网| 大香蕉综合网| 久久久久国产无av| 久久久成人免费av电影| 五月丁香拍拍激情综合三级| AV天堂男人的天堂| 99人妻碰碰碰久久久久禁片| 发朗少妇买婬全视频中文| 天天拍天| a在线视频免费观看| 大香蕉男人的天堂| 精品无码欧美三级| 99自拍B亚洲 | 中文字幕第2页| 国产一区二区视频在线播放| 青青草白白色| 狠狠中文字幕| 啊啊啊啊啊好大好舒服想要| 中文字幕亚洲永久精品| 超碰人妻中文在线| 午夜福利一区二区影院| 女人妻一区| 超碰97人妻在线| 91丨国产丨白浆| 亚欧美色| 青青操青娱乐| 97视频网站| 3571色综合一区二区二区| 亚洲色交| 香蕉在线一区二区三区| 97免费在线观看| 午夜婷婷| 婷婷综合伊人一区| 超碰亚洲欧美日韩无| 高清肉丝中文无码| 亚洲 国产 精品一区| 2020中文字幕在线观看| 91超碰在线播放| 日本亚洲vr欧美不卡高清专区| 99精品久久久久久久婷婷| 试看日韩黄片| 狠狠色五月亚洲91| 亚洲区限制级 99| 亚洲。日韩。欧美| 五月婷婷深深爱| 综合欧美色图| 欧美操逼熟女| 精品国产91av一区二区三区| 免费看黄片现成| 中文字幕欧洲有码| 天天躁狠狠躁av| 日本男人插女人的逼黄色| 欧美综合加勒比在线| 丁香五月天啪啪| 少妇高潮特黄A片| 青青三级视频| 亚洲国产成人高清在线| 操死我了嗯嗯嗯| 91丨人妻丨国产丨丝袜| 加勒比大香蕉视频在线| 国产精品不卡高清在线观看| 日日A∨| 日本精品五区| 在线亚洲欧美| 国产一区在线观看无码AV| 天美av在线| 青青操青娱乐| 人妻三级在线中文字幕| 亚洲中文日韩精品| 大香蕉97久久| 五月天婷婷基地| 中文字幕交换人妻| 少妇高潮九九九九| 97视频免费播放| 国产青视频| 亚洲福利影院一区久久| 国产亚卅97| 欧美亚洲美少妇一区二区| 99热在线不卡| 夜夜高潮夜夜爽国产伦精品| 久久偷拍人| 亚洲一二三| 夜夜爽夜夜摸夜夜操免费视频| 欧美丝袜91| 成人毛片免费| 全免费a敌肛交毛片免费| 婷婷五月天影院| 操我啊啊啊啊啊| 操老熟女AV| 操逼操2| 日韩黄色一区二区三区| 6080yy午夜理论三级一区二区三区无码| 91美女视屏| 久久精品女同亚洲女同13| 不卡av免费在线网址| 国产精品嫩草影院免费| 97天天爽| 后入合集| 婷婷激情五月天小说网| 青青草视频久久| 一区超碰一区| 午夜操逼不卡| 神马视频久久久久久| 美女91网| 最新国产精品久久精品| 蜜奶av| 亚洲AV无码乱码| 天天日天天干天天整| 情色五月天久久久| 91色图| 99精品久久| 91无摭挡| 99精品久久久久久久婷婷| 99999精品成人| 啊啊啊免费视频| 99久热| 综合亚洲欧美| 97综合激情| 九九成人视频| www.zbzhongsen.com| 欧美国产伊人久久久久| 日韩欧美tv一区二区在线观看| 欧美姓爱综合网| 加勒比综合88| 91久久久久久久| 久热这里| 色网在线视频观看免费| 97美日韩视频| 91高清日| 日韩97超碰| 天天日日本| 久久这里只有精品9| 欧美中出1| 久久精品一区二区三区四区五区| 97干色| 人妻少妇被猛烈进入中| 免费人成毛片乱码| 日本99久久| 一二三区精品视频| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 72av视频| 青青草九九九九九| 99久久精品欧美国产| 亚洲少妇在线影音| 人人摸人人叼| 舔足天天操天天射| 91久久18禁| 国产麻豆福利av在线播放| 综合熟妇一区二区三区| 国产成人亚洲精品自产在线| 91在线秘 男同| 97视频免费在线| 香一区二区三区| 亚洲最新av无码成人精品区| 欧美日本不卡在线| 天天摸夜夜摸| 日本韩欧美在线播放a| 久久久999| 91精品久久久久久77777| 欧美综合区| 性爱综合一区二区| 色九九久九九| 天天操人人操骚逼网站| 69精品少妇一区二区三区蜜桃| 思思热国产高清| 97操碰| 97国产天堂岛| 欧美亚洲综合色| 欧美日韩中文亚洲v在线综合| 日本操逼视频在线| 伊人欧美大香蕉视频| 好看的久久不射无码影视影院| 色色五月天激情| 国产亚洲美日韩Aⅴ中文字幕无码成人| 亚洲天堂一二| 日产123区精品免费观看| 亚洲 欧美 另类 综合 偷拍| 黑丝内射一区二区三区| 亚洲女毛多水多21P| 6080YYY午夜理论片在线观看| 久久久A∨| 99啪啪| 人妻大香蕉| 欧美精品23| 人人人人人人少妇| 看全色黄大色大片免费视频| 混色激情av| 欧美精品,四区。五区| 91丝袜熟女| 一二三四视频在线社区中文字幕| 视频在线97| 9久9久| 黄页av| 天天日天天搞天天干| 天天日天天干天天整| 日本新免费二区三区| 日韩欧美中文| 国产色精品午夜大片| 国产日韩区| WWW啪啪的com| 秋霞成人一级在线观看| 欧美国产精品| 天天躁日日躁xxxxx| 蜜乳AV一区| 高清无码 国产精品| 天天操夜夜嗨| 蜜乳性色无码专日粉嫩骚逼AV| 无码精品久久久天天影视| av日韩国产一区二区| 一区二区三区成人高清视频| 97欧美性爱| 8050午夜少妇无码| 欧美99热| 欧美熟妇乱码在线一区| 台湾肥佬网一区二区三区| 免费人人搞97| 日韩视频小说在线观看| 果冻传媒一区二区三区| 日日操夜夜操天天操免费观看麻豆| 亚洲中文字幕一区二区| 亚洲黑人在线| 久操操AV电影| 日韩欧美国产高清视频| 婷婷操逼| 久久女人视频| AV丝袜东京热| 黄色片G G G| 欧美色图欧美| 日本一区二区亚洲综合| 狠狠中文字幕| 综合色99| 天天干天天日天天射黄色片| 91伊人久久在线| 欧美熟妇精品黑人巨大91| 日本影视久久免费| 婷婷激情五月天小说网| 男人的天堂2019AV| 久久色一区二区| 久久精品人妻一区二区三区| 青青草原av| 蜜乳中文字幕a在线| 不卡一区二区日本视频| 99热9| 超碰97男人| 日本久久久久久久久久| 日韩av性爱在线播放| 亚洲高清无码在线桃色| 性爱动态120秒| 五月婷婷hd| 大香蕉日韩| 91亚洲色人| 色九九综合| 欧洲综合视频| 人妻少妇精品无码专区二区密桃| 天天看天天日天天操| 激情小说成人日本无码一| 99精品热| 97bbn| 啊啊啊免费视频| 成人网站 免费观看| 久久久久9久久久久| 99蜜月精品久久| 家庭乱伦国产精品| 久久综合九九| 色五月激情AV在线| 欧美自拍偷拍综合图片| www99热| 精品久久久不卡一区二区| 国产精品诱惑| 国产67194| 91N综合在线| 超碰78| 无码精品人妻一区二区三区妖精 | 99热在线观看| 60秒免费视频| 亚洲加勒比久久日本道| 一级性爱aaaa| 日日干男人的天堂| 日韩视频精品在线观看| 欧美成人都市人妻| 黄色成年| 欧美日韩国产色图在线| 60秒免费小视频| 极品销魂美女一区二区 | 天天天天天天天天综合| 国产91福利小视频在线观看 | 青娱乐亚洲自拍| 欧美72网页| 无码一区免费在线不卡| 最新欧洲欧美日本激情网站| 日本久久久精品电影| 美女写真| 天天看高清麻豆| 日韩黄片影院| 亚洲国产综合久久久性感熟妇| av中亚| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久久精品国产Aⅴ| 久久精彩免费视频| 日本在线999| 免费观看啪视频| 亚洲欧美精品久| 乱伦图av| 激情五月天校园春色网| 精品久久久久久中文字幕三区| 有码人妻系列| 91伊人久| 日韩99神马视频片| 欧美性爱精品七区| 亚洲淫乱骚妇AV| 人人摸.人人色| 屌妞视频久久久久久久久久久久| av网站国产主播在线| 宅男91视频在线播放| 91P0RNY大屁股人妻| 18一区二区三区| 亚洲欧美成人网站AAA| 色婷婷aV一区二区三区麻豆综合| 九九碰九九爱97超碰| 欧洲综合视频| 在线中文字幕| 夜夜福利| 不卡一区二区日本视频| 任你干在线视频| 在线国产一区二区av| 97欧美综合网| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 综合97| 99久久com免费视频′| 亚洲精品久久久久毛片A片拉屎| 欧美日韩免费专区在线| 国产一级137片内射麻豆| #NAME?| 国产精品无码AV网站| 欧美92| 人妻天天爽夜夜爽爽| 日本操逼aaaaa| 国产精品天干天干综合网麻豆| 国产视频一区二区免费| 97国产精品一区| 中文字幕国产精品1区| 国产亚洲精品A在线观看下载| 国产和美国毛片| 久久草在线综合视频| 中文字幕第2页| 中文有码第五页| 欧美性爱一级操| 天天日天天看| 午夜欧美神马久久久久| 久久精品国产AV一区二区三区| 亚洲综合 欧美| 人妻丝袜无 码视频专区| 中文字幕在线免费观看2| 久久久精品一区二区| 久操大香蕉手机视频在线看 | 九九av| 又黄又爽在线观看视频| 国产日韩欧美亚洲精品95| 国产日韩美女小穴视频网站不卡| 91九九九馒头| 顶级丝袜熟女一区二区三区 | 97综合在线观看| www.91逼逼.com| 色噜噜国产精品视频一区二区| 日日骚 av| 国产玖玖| 综合久久六月久久婷婷| 超碰九7| 国产免费一区| 超碰碰97| 九九人人操| 男女激烈网站最新| 欧美成人精品一区| 无码久| 天综合网| 色色色天美视频| 中文字幕黄片在线| 欧美日韩人妻精品一区二区三区| 青青草原综合久久大伊人精品| wwwcaobibi| 日韩精品国产一区二区| 美女91| 青青草中日韩在线| 欧美日本天堂| 天美国产三级传媒| 国产精品爽爽va在线观看98| 91丨国产丨白浆秘 洗澡动漫| 亚洲情色 自拍| 一级黄碟| 午夜性| 亚洲 图片 综合91| 欧美刺激色黄片免费看| 操逼视频色| 五月天婷婷社区| 亚洲 欧美 综合 91| AV高清一区| 精品国产乱码久久久久久影片| 婷婷丁香五月激情啪啪| 成人精品一区二区91毛片不卡| 超碰97欧美| 色狠狠一区二区三区香蕉| 免费超碰97久久| 夜夜狼人妻| 激情综合97| 日本在线一二 | 91色噜噜狠狠| 成人综合色网| 午夜精品一区二区三区三上悠亚| 黄片www.| 亚洲系列第一页| 2024年最新色情网站在线观看| 91综合网站| 久久在肏| 99re6在线视频播放免费精品| 毛片99-全集电影手机免费观看完整-B029AV | 日本色日夜干| 亚洲情色 自拍| 毛片99-全集电影手机免费观看完整-B029AV | 亚洲无吗在线视频| 伦激情人妻另类人妻| 懂色aV一区二区天美传媒| 男人亚洲天堂| 女色综合| 亚洲性网| 无码精品久久| 人人操人人插人人摸人人干| 午夜超爽| 91小视频| av片在线观看免费播放| av天堂手机版追回| 国产超碰在线| 蜜桃视频精品一区二区| 中文字暮97| 欧洲中文字幕| 999日韩中文精品观看视频。| 亚洲宅男天堂| 偷拍网站久久男女男| 69人妻人人揉人人躁人人精品| 91亚·色| 高树玛利亚无码流出| 一区中文字幕二区日韩| 国产精品在线网站| 少妇内射视频| 久久熟女精品不卡一区| 超碰人妻久久| 偷拍精品一区二区三区| 亚洲人成网站7777| 日韩精品人妻一| 日本一区二区不卡精品| 91精品国产高清久久久久久,亚洲成人 | 这里都是精品| 午夜精品久久久久久久久久久久久| 久久久久久久9| 激情 欧美 亚洲 小说| 中日亚韩免费视频| 婷婷中文网| 天美传媒国产原创中文字幕亚洲欧美另类 | 簧片免费看视频| 志村玲子视频一区二区| 男人天堂站| 精品无码一区二区人妻久久蜜桃| 婷婷久久久精品| 99re在线| 亚洲成?V人片在线观看福利| 久久露脸国产老熟女| 91人人爽人人爽| 久操影视| 亚洲国产熟妇综合色专区| 欧美 精品国产制服第一页| 操逼操逼视频操逼| 九九Av| 中文字幕乱码人妻一区二区三区,99精品| 综合av影片| 青女偷拍网| 日韩操啪| 国产一区在线观看无码AV | 一区二区三区四区五区高清无码永久视频| 欧美亚洲丝袜美女电影| 亚洲精品人伦一区二区| 人人妻人人澡人人爽人人精品浪潮| 欧美亚洲情色| 国产日韩在线播放| 91超碰人人| 欧美日韩天堂| 欧美一区二区男人天堂| 黄片色区软件| 欧美熟女少妇| 欧美一区二区三熟女剧情| 日韩97| 思思性爱| 99热免费精品| 啊啊啊啊啊啊啊啊在线观看| 国产强奸乱伦xd| 人妻熟女字幕一区二区| 麻豆国产成人精品| 老熟女91| 欧美性爱五月天| 亚洲精品欧洲精品| 搡老女人老熟女91老熟女综合网| 精品视频免费在线一区| www.91色综合| 天天干1区2区在线| 51久久夜色精品国产麻豆| 一级A啪啪啪啪| 超碰97色色| 免费一二区| 国产超碰| 综合av影片| 国产黄色视频久久| 婷婷综合久久| 尤物视频偷拍免费| 国产精品亚洲无码| 精品国产乱码久久久久久久久1| 青青伊人久久| 亚欧毛片基地国产毛片基地| 婷婷五月色| 歐美性天天| 9久在线视频只有精品| 亚洲精品成人| 情色五月天网| 影音先锋乱伦资源| 97色在线观看| 日曰骚久久精品| 欧美人与性动交a美精品| 日欧美色| 色在线视频导航| 99热这里是精品| 怡红院亚洲怡春院av| 欧美色性爱| 国产五码丝袜屁眼| 美国日韩黄片| 国产怡红院| 99无码| 欧美十八禁网站| 久久久国产精品亚洲精品| 日本1区2区不卡视频| 久久人人爽爽爽人久久久| 78超碰| 97色婷婷| 不卡视频一区蜜桃视频| 亚洲九区| 999热日韩精品| 日本女人操逼| 大白逼三四级| 国产成人综合网| 欧美日韩制服| 久热伊人| 大色综合| 搡老女人老妇女老妇老熟女怎么读| 久草成人影片| 91九色首页| 久久线上视频免费看| 色婷婷电影网| 91综合网在线| 丁香五月激情啪啪| 啊啊啊啊啊好多水| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 久久亚洲AV无码专区首页| 欧美亚洲日韩16色| 日韩精品黄片免费观看| 九一性生活免费视频| 五月丁香社区婷婷日韩欧美精品影院| 日本道日本道中文字幕日本道最新日本道在线观看 | 91香蕉视频在线观看免费| 蜜臀AV成人精品蜜臀| 亚洲伊人a线观看视频| 蜜桃视频一区二区三区| 强奸乱伦动态污图免费 | 国产人妻天天干精品| 亚洲交换| 91久热| 1769成人国产精品视频| 男人干美女| 人妻人人做人人澡人人爽欧美一区| 黄色十八禁| 免费毛片在线播放| 欧美色亚洲| 91亚州欧美| 丰满人妻一区二区三区四区| 日本熟妇自慰性高潮一区二区三区| 亚洲啪啪性视频| 天干天干天干天天做| 超碰久久性爱| 操www| 欧美色图20P| 久无码| 18禁免费视频| 思思热er精品视频| 亚州色图欧美色图| 韩国久久97| 思思热久久成人| 99热国产精品| 神马久久久久眼| 这里只有精品视频在线观看麻豆| 久欲AV| 亚洲瓯美色图| 偷拍自拍在线视频观看| 97人人色| 超碰天天久久79| 性在久久久久久| 外国91| 久久国语| 婷婷尹人大香蕉免费| 精品国产91av一区二区三区| 97在线亚洲| 91精品人妻一区二区三区蜜桃臀| 永久免费发布性爱网| 天天干夜夜鈤| 九九九九九精品十六| 色色色五月婷婷| 麻豆国产精品午夜视频| 久久r精品| 国产伦精品免编号公布| 足交视频老司机| 加勒比av网| 91丝袜视频在线观看| 午夜国产成人福利视频 | 强奸乱伦大香蕉网| 日本国产欧美一区三区二区| 国产性爱欧美性爱在线| 97蜜桃综合| 日本色色的视频| 久久欲| 夜夜久久久| 红桃视频高潮| 六九九九| 1禁看欧美黄片免费看| 国产精品精品系列在线观看| 亚欧洲一区二区视频| 东京热亚洲一区二区| 熟女人妇一区二区三区| 97超碰人人操人人操| 色色97爱| 走光一区92下载| 天堂国产AV| 91熟女熟妇视频网站| 国产三级多多影院2022国产AA一级毛片无码 | 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 一级免费啪啪片| 综合欧美激情网| 成人免费视瓶| 国产美女91| 熟妇高潮二区三区| 色偷偷色偷偷欧美日韩| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 婷婷五月天丁香花| 精品久久久久久中文| 亚洲黄色视频在线观看视频| 91久久| 一本色道综合久久欧美日韩精品| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | AV男人天堂网| 级品肉射| 久久久久久久久久久久久久9999| 国产丝袜视频| 久操热线| 三级三久久线久久99久目本WW| 日日日日做夜夜夜夜无码| 日韩免费看在线黄色片| 白丝AV| 欧美激情1区| 亚洲一区二区av| 亚洲日韩狠狠撸视频| chaopen97久久| 天天影视之亚洲综合网| 亚洲AV资源| 免费人人搞97| 大香蕉 222| 亚洲AV高潮| 欧美爆操91| 怡春苑东京热| 国产精品女同| ′ !γ}丶。。久久精品欧美一区二区三区 | 亚洲中文国际强奸字幕| 亚洲欧美日韩免费观看| 亚洲欧美国产中文视频| 2021国产成人精品久久| 丝袜人妻av一区二区| 张柏芝国产一区在线观看| 精品国产av一区二区三区四区入口| 中文乱码字幕观看| …亚洲黄色厕厕女女在线播…| 狠狠超| 久久只有精品| 亚洲精品一区二区精品| 一级成人性爱| av午夜影院在线播放| AV免费在线播放一区| 国产传媒操逼视频| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 91肉丝| 亚洲精品久久久久毛片A片拉屎 | 富女玩鸭子一级毛片| 久久双插| 一级性爱啪啪视频| 五月天婷精品激情| 99久久99九九99九九九| 97天天摸天天碰| 亚洲日本男人天堂网| 亚洲成人色情五月天丁香花| 欧美大干日韩| 在线观看免费视频国产| 国产精品日韩在线一区| 北约熟女超碰| 翔田千里av一区二区三区| 色噜噜婷婷| 大香蕉伊人网WWWn0n| 精品小视频在线| 欧美97视频| 九九久久国产精品怡红院| 国语精品对白| 亚洲无码超碰免费| 欧亚性爱啪啪| 婷婷五月天伊人| 中文字幕艹艹| 综合九九| 人人妻人人爽一区二区三区| 免费久久一级毛片大黄| 综合久久六月久久婷婷| 亚洲成av人片色午夜乱码| 国产少妇与亚洲av| 情色五月天久久久| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 亚洲AV不卡在线观看尤物| 91操熟女视频 | 国产精品青青草| 天综合网欧美| 人妻精品一区二区三区| 老子午夜伦不卡影院| 乱伦AVxx| 97一区二区蜜臀| 九九亚洲色在线观看| 亚欧中文字幕在线视频| 久草视频在线视频在线视频在线观看| 色噜噜狠狠色综合日日| 日韩二三区| 嗯~啊~快点 死我视频免费看网站| 亚洲熟女av中文字幕| 小视频国产| 女优视频第10页| 亚洲男人天堂2016| 玖玖综合网| 亚洲第一狼人丝袜美女另类| 色欧美天天| 精品一区二区三区四区外站| 一区二区三区不卡视频| 欧美性爱中文字幕无线码| 伊人91| 亚州 综合 色图| 亚洲久久东京热一二三四五区视频| 人妻一区二区三区四区视频| 日韩人妻播放| 欧美一区二区传媒| 亚洲一区二区中文字幕| 日韩中文字幕人妻视频| 久久久久久亚洲精品不卡人乳| 婷婷精品国产欧美精品亚洲人人爽| 亚洲综合97| 操一区| 999 久久久| 午夜福利一区二区影院| 色五月综合网| 香蕉大久久久| 日本熟女不卡视频| 野狼激情网| 亚洲第一页综合在线| 欧美性爱综合,免费| 丁香五月天堂网| 中文字幕久久精视频久久大全| 无码78| 久9视频| 久久9精品网站| 黄色片一区二区三区四区五区| 欧美v日韩欧亚洲电影天堂色诱,国产传媒 | 久久久9品一区二区三区| 久久精品国产亚洲粉嫩| 3D污黄视频在线观看| 99国产精品免费| 亚洲国产综合图区中文字幕| 伊人激情| 中文字幕免费看| 亚洲成人福利电影免费| 69精品人人人人| 久草尤物| 久草综合京东| 91搡老女人老妇女老熟女歌词翻译| 日韩一级片| 97se亚洲|