色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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 主流技術(shù)棧SpringMVC、Spring、MyBatis與 MySQL 構(gòu)建的物聯(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ù)查詢與報表導出、子賬戶與場景授權(quán)等完善功能。壓縮包約 832.96MB共 2000 個文件以 jsp、java、js、css 前后端代碼為主附帶 sql 數(shù)據(jù)庫腳本、xml 及 properties 配置、pdf 與 doc 文檔方便二次開發(fā)和部署維護。目前已有 245 人學習下載文檔齊全、目錄結(jié)構(gòu)清晰可幫助讀者節(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 全棧技術(shù)的物聯(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 上拖拽圖元、配置采集驅(qū)動功能很全但二次開發(fā)基本走封閉接口。Web 組態(tài)的思路不同前端用 SVG 或 Canvas 畫圖元把圖元的位置、顏色、數(shù)據(jù)源保存成 JSON后端只負責存儲和推送實時值。運行時瀏覽器拿著 JSON 渲染畫面再通過 WebSocket 接收數(shù)據(jù)刷新。這套 Java 全棧源碼里的組態(tài)模塊常見做法是前端 Vue SVG后端存組態(tài)模板和設備綁定關(guān)系。好處是部署簡單客戶打開瀏覽器就能看省掉插件安裝。代價是復雜動畫、歷史曲線回放、報警聯(lián)動這些傳統(tǒng)組態(tài)自帶的能力在 Web 組態(tài)里往往需要自己補。源碼里一般內(nèi)置了基礎圖元庫比如管道、閥門、儀表、傳感器圖標夠畫流程工藝圖。你要是想把它做成類似 WinCC 那種重型畫面就得往圖元腳本和動畫編輯器里加代碼。組態(tài)的核心不是畫布渲染而是圖元和數(shù)據(jù)源的綁定。一個溫度計圖元綁定設備的 temperature 屬性運行時后臺把最新值推到前端圖元指針跟著轉(zhuǎn)。這個綁定關(guān)系的數(shù)據(jù)結(jié)構(gòu)設計決定了組態(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)關(guān)解析 → 后端業(yè)務處理 → 寫入數(shù)據(jù)庫 → 推送通道 → 前端圖表渲染。任何一環(huán)慢了大屏就出現(xiàn)數(shù)據(jù)斷層。源碼里大屏常見的數(shù)據(jù)推送方式有兩種一種是大屏頁面直接訂閱 MQTT繞過后端業(yè)務層另一種是后端轉(zhuǎn)發(fā)到 WebSocket前端再訂閱。我更推薦后者。因為大屏需要展示的不只是原始測量值還有聚合結(jié)果比如最近一小時的平均溫度、設備故障率。這些計算放在后端做前端拿現(xiàn)成數(shù)據(jù)渲染鏈路更穩(wěn)。直接訂閱 MQTT 雖然實時性高但長時間大流量下前端很容易被消息淹沒也不方便做權(quán)限控制。大屏和歷史數(shù)據(jù)是綁在一起的。常見方案是后端定時把設備數(shù)據(jù)從 Redis 或 MySQL 聚合到一張大屏統(tǒng)計表前端展示時先查一次歷史數(shù)據(jù)再訂閱實時增量。這套源碼里的大屏模塊一般會提供設備總數(shù)、今日報警數(shù)、實時曲線這幾個基礎組件你可以照著擴展。做二次開發(fā)時先摸清大屏接口返回的字段和推送消息的格式再動手改圖表。2.3 協(xié)議接入層MQTT、TCP、??禂z像頭在源碼里的位置協(xié)議接入層是物聯(lián)網(wǎng)平臺的地基。源碼里這一層通常分三個入口MQTT 客戶端、TCP 服務端、攝像頭拉流服務。MQTT 負責傳感器、DTU、智能儀表這類小數(shù)據(jù)量設備按主題訂閱消息體多用 JSON。TCP 服務端負責 PLC、控制器、防火墻一類走自定義幀協(xié)議的設備需要做報文解析。??禂z像頭則走獨立通道用 RTSP 拉流再轉(zhuǎn)成 HLS 或 WebRTC 供前端播放。三層接進來后數(shù)據(jù)必須統(tǒng)一收口。源碼里一般設計一個DeviceMessage內(nèi)部模型包含設備標識、屬性名、數(shù)值、時間戳。MQTT 回調(diào)、TCP 解碼器、攝像頭告警事件最終都轉(zhuǎn)成這個模型再交給消息隊列和業(yè)務層。統(tǒng)一模型的好處是上層做告警、存儲、大屏不用關(guān)心底層是什么協(xié)議。你接新設備時只需要把新協(xié)議解析成DeviceMessage其余鏈路不用動。選型和架構(gòu)說完了下面進入實際操作。把源碼跑起來你會遇到第一個問題環(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 是主流注意驅(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 裝在獨立服務器避免和業(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前端構(gòu)建按 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 登錄權(quán)限。導入完成后用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 驅(qū)動用的和數(shù)據(jù)庫字符集無關(guān)但業(yè)內(nèi)習慣寫上serverTimezoneAsia/Shanghai防止 MySQL 8 的時區(qū)報錯。Redis 密碼如果沒有留空。還有人會漏掉web端口配置確認server.port是你要的端口默認 8080。3.3 按順序啟動后端、協(xié)議網(wǎng)關(guā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讓進程在后臺運行日志重定向到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、海康攝像頭怎么打通4.1 MQTT 接入訂閱設備消息、解析 payload 并寫入業(yè)務表大多數(shù) IoT 源碼都會用 Eclipse Paho 或 Spring Integration MQTT 做客戶端。核心是訂閱設備上報主題把payload轉(zhuǎn)成業(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); } }邏輯說明這個方法只關(guān)心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è)務層拿到后不再關(guān)心字節(jié)邊界。TCP 設備協(xié)議千差萬別常見的有 Modbus、自定義頭部CRC 校驗、JSON 換行符分隔。我把解碼器設計成策略模式每種協(xié)議一個FrameDecoder通過工廠類注冊進去。業(yè)務 handler 接收解碼后的幀再按協(xié)議類型解析。這個分層能省掉后期很多改協(xié)議的痛苦。4.3 ??禂z像頭接入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強制走 TCP避免 UDP 在弱網(wǎng)下丟包花屏/Streaming/Channels/101是海康主碼流102是子碼流預覽用子碼流更流暢-hls_time 2每個分片 2 秒hls_list_size 3只保留 3 個分片降低延遲。這個命令在 Java 里用ProcessBuilder啟動注意定期檢查進程是否存活。攝像頭鑒權(quán)有個常見坑??禂z像頭空閑一段時間后會要求重新鑒權(quán)FFmpeg 進程還在但流已經(jīng)不更新了。我一般在 Java 里定時比如每 30 分鐘檢查 FFmpeg 進程輸出如果接收不到數(shù)據(jù)或者返回碼非零就殺掉進程重新拉起。另外并發(fā)拉流很吃帶寬如果 20 個攝像頭同時推主碼流服務器帶寬直接打滿。我的做法是預覽用子碼流 轉(zhuǎn)碼錄像才用主碼流。很多平臺為了省資源會直接在前端用 WebRTC 播放但??禂z像頭原生不支持需要ZLMediaKit或SRS做二次轉(zhuǎn)封裝。如果這套源碼里沒有包含流媒體服務器用 FFmpeg 轉(zhuǎn) 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表示最近一分鐘平均值。前端收到推送后更新圖元代碼結(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)指針閥門圖標變色數(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有些模塊自帶心跳但默認關(guān)閉需要打開。這個坑最折磨人因為現(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 ??禂z像頭畫面卡頓或黑屏碼流參數(shù)與鑒權(quán)并發(fā)現(xiàn)象攝像頭接入平臺后預覽畫面每隔幾分鐘卡一次嚴重時黑屏FFmpeg 日志報錯method OPTIONS failed: 401 Unauthorized。原因??禂z像頭默認開主碼流4K 分辨率高碼率服務器帶寬和轉(zhuǎn)碼能力扛不住另一個是 RTSP 鑒權(quán)過期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é)構(gòu)解析。這個坑的排查手段是抓包把收到的原始字節(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()里把原始報文轉(zhuǎn)成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 報文結(jié)構(gòu)改了一點就解不了包建議先從第 5 章的排查思路入手八成問題都在通道時序和協(xié)議定界上。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色色香蕉| 亚洲综合另类色图| 校园春色五月天| 91精品无码人妻系列| 日本大香蕉| 久久大黄片| 国产呦精品一区二区三区下载| 日韩精品9999| 国产九九九九九九九九| 少妇蹲下买菜露大唇0| 亚洲欧洲综合成人av一区| 国产大片精久久久久久| 国产 日韩 欧美高清| 欧色性第一页| 18禁超污无遮挡无码免费网| 探花精品 一区二区| 欧美人妻二区三区| 国产精品日本无码A片| 久久国色天香香蕉| 婷婷99狠狠| 91 丝袜在线观看| 成人免费在线网站| 精品视频一二三中文| 欧美日韩高潮喷水91| 久久亚洲一区女同性恋中文字幕 | 黄色无码高清黄色无码网站| 欧美熟妇精品黑人巨大一二三区| 狠狠中文字幕| 久久熟女嫩草成人片免费| 日韩精品亚洲专区在线影视| 91N综合网| 国模精品一区二区三区苹果色戒| 91亚洲情色| 亚洲色图91欧美日韩| 男女无套 免费网站| 有码人妻系列| 粉嫩av在线一区二区| 91天美免费| 亚洲国产精品久久久久久久久久| 午夜精品久久一区二区| 国产精品天干天干综合网麻豆| 国产女人和拘做爰视频 | 亚洲欧美国产va在线播放频| 欧美 亚洲 另类 综合| 日韩亚洲国产视频| 一区在线精品中文字幕| 日韩精品影视| 七久久久| 國產尤物AV尤物在線觀看| 欧美激情 亚洲色图| 久操大香蕉手机视频在线看| 婷婷丁香九月| 国产女人视频三四五区| 天天综合网~91综合网| 亚洲日韩一区电影| 小视频玖玖| 麻豆 美女 丝袜 人妻 中文| 久久国产精品,久久国产| 色情乱伦AV| 亚洲欧美999| 校园春色亚洲无码| 激情一区二区三区在线观看| 国产精品999zyz| 精品一区二区三区麻豆| 夜夜春夜夜操| 久久久久元码视频| 久久大香蕉手机高清| 婷婷视频在线免费观看| 婷婷影院入口| 精品人妻一区二区视频| 爱逼综合| 96精品久久| 偷拍亚洲情色| 情色五月天网| 日日夜夜国产综合| 日本在线不卡123| 婷婷色影院| 性开放中文AV高清无码免费看| 69精品| 国产性爱欧美性爱在线| 一级片视频啪啪| 五月天精品| 91麻豆天美传媒HD| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 久久久久久中文| 亚洲自拍欧美国产首页网曝 | 亚洲无线码欧洲精品区别| 久久久久久九九九九九 | 97综合国产精品高潮久久| www.狠狠干.coom | 开心五月天激情网| 99re国产中文字幕| 在线视频日韩欧美国产| 人人看人人爰人人操| 欧美亚洲激情| 蜜臀AV秘一区翔田千里| 中文字幕在线免费观看2| 99草精| 久久华人网| 爱妻综合网| 91操人| 久久精品视| 试看福利| 蜜桃精品视频一区二区三区| 插插综合网天天影视网| 33044男人的天堂深夜备| 亚洲熟女一区| 亚洲欧美日韩中文久久自慰| 啊啊啊啊啊好舒服视频| 丰满人妻-区二区三区免费看 | AV99热18这里只有精品| 亚洲AV不卡在线观看尤物| 日本蜜桃| 少妇久久久免费| 欧美伦乱爱| www.男人天堂| 九九超碰综合网| 欧洲亚洲综合| 97国产|免费| 大香蕉日韩| 校园春色第一页| 日韩大香蕉| 在线日韩日本亚洲国产| 日韩精品碰碰| 日本午夜精品理论片A级APP发布| 欧美性爱在线无码| 人人色97| 蜜臀无码一区二区| 97精品网| 黄骗免费| 日本黄色裸日本黄色裸体| 试看福利| 欧美天堂在线| 欧美偷拍区| 亚洲日韩国产欧美综合v| 婷婷亚洲综合| 久96热在线观看视频| 亚洲麻豆av一区二区| A一区片| 中文字幕av乱伦| 91麻豆天美国产欧美日| 少妇天堂网络| 亚洲猛交| 欧美性爱一级操| 亚洲色天堂日韩中| 日韩中文9| 亚洲一区二区三区婷婷| 特级毛片特黄久久免费看| 五月丁香综合啪啪| A啊啊在线观看| 91痴汉| 国产欧美在线观看免费观看| 深夜激情无码| 婷婷五月天久久精品视频一区二区三区 | 色五月激情综合网| 伊人久大| 成人免费在线网站| 嗯嗯啊啊亚欧精品| 久久久久女教师免费一区| 秋霞怕怕片| 久久AV无码网址| 91女网站| 中文字幕成人乱码熟女精品国50 | 青娱乐999| 日本三级大片| 国内一级精品| 91精品人妻电影| 乱理日韩中文| 色综合av综合久久| 五月丁香久久| 国产日韩怡红院| 久久亚洲欧美中文字幕国语| 无码视频一区二区| 欧亚日韩一区在线| 99视频只有精品| 中文久久96| 超碰97人人cao| 操操碰| 偷拍片久久| 视频一区二区三区精品| 久久综合久久综合人久久夜精品| 噜噜噜噜久久久精品免费| 国产精品麻豆视频网站| 5252色欧美在线| 欧美色女人| 激情婷婷丁香| 亚洲天天自拍| 欧美日韩超碰在线| 精品人妻一区二区三区在线视频不卡| 丁香久久| 亚洲日韩美女丝袜美腿人妻视频| 亚洲黄色网址| 亚欧Av| 欧美激情精品久久久| wwwxxx日本爽| 中亚黄色三级大片| 欧美九9 9 9| 日本媚薬中文字幕在线| 操碰97| sewuyueav| 91精品久久久久久77777| 视频在线中文字幕| 色九区| 亚洲天堂加勒比| 99久久综合| 熟妇人妻一二三区免费| 青青网三级视频| 亚洲丝袜综合| 欧美综合 站| 八人操人人摸人人看| 久久久专区| 日操粉逼逼| 无码人妻系列少妇| www.色婷婷| 九九九网站| 97视频网站在线观看| 日语五十路和六十路亚洲国产精品| 少妇一线天久久久久久| a片久久久久久久久久久久 | 婬女免费一二三区A片| 午夜欧美精品久久久| 五月天色综合| 手机看片日韩人妻| 天堂精品一区| 超碰亚洲欧美日韩无| 精品视频一区二区| 久久人妻一区二区三区高清| 久jiu久神马影院| 岛国在线国产| 天堂精品| 日韩有码一区三区| 无码高清国产AV| 久久久久久中文| 久久五月份| 欧洲亚洲国产综合在线| 中文字幕一品色图| 亚洲av热热色| 女人高潮抽搐喷水视频网站| yaouchengrenav| 老司机午夜福利视频一区二区| 青青操轻轻| 亚洲色图综合| 亚洲男人天堂2017| 东北女人操比视频| 久久久九97| 国产宅男宅女在线观看| 国产免费小视频| 97硬碰| 伊人久久大香大香线蕉中文| 无码人妻精品一区二区三区99不卡| 欧美 亚洲 91| 97午夜剧场日韩| 亚洲黄色a级片| 天美传媒AV在线播放| 97露脸精品丝袜| 亚洲精品日日夜夜52| 蜜乳中文字幕a在线| 国产免费一区| 久草男人天堂| 欧美专区第一页| 思思热免费视频观看| 成年人黄色视频免费| 97色欧洲| 欧洲亚洲综合| 一牛一区二区三区久久| 国产成人资源| 精品久久視頻在线| 亚洲精品男人的天堂| 日本色色色视频| 2023天天操夜夜操| 黄片qw| 亚洲天天更新| 神马麻豆福利院| 爱丝福利| 我爱搞逼综合网| yazhousetuoumei| 亚洲天堂区| 亚洲中文字幕网| 国产精品久久久久久片| 91人妻最真实刺激绿帽| 熟女五十路一区二区三| 1人人看人人摸人人操| 九九九热| 国产强奸乱伦第1页| 97亚洲自在精品在线观看| 老女人碰碰在线碰碰视频| 爆乳免费黄网站| 久久一二三四五六七八九区区区| 男人的天堂一区三区| 精品日韩中文在线| 亚洲最大的综合性av| 国产高清吃奶免费视频网站| 精品三级在线专区| 国产黄色视频久久| 涩涩涩综合| 爱妃国产亚洲视频中文字幕| 在线中文字幕| 中文字幕乱码人妻二区三区| 国产精品原创巨作?v网站| 欧美一级在线观看成人| 亚洲天堂精品日韩电影| 久久久精品91八戒| 草草影院最新网址| 黄片免费看的| 欧亚乱色熟女一区二区| 爆操无码| 久久久人体| 69人妻人人揉人人躁人人精品| 999在线电影香蕉| 亚洲天堂另类小说男人| 超碰综合色| 91伊人久久在线| 久久视频,这里只有精品 | 四虎884a| 色一区二区三区综合| 性高潮久久久久久久久久久| 久久久久久久精| 日韩激情电影中文字幕| 人人插人人摸人人| 亚洲美乱| 美女诱惑在线一区| 久久久久幕乱码| 97 色综合| 大香蕉www.超碰| 国产av美女被艹的乱叫| 夜夜肏2021| 五月天伊人| 久久人妻少妇| 啊啊啊想要| AⅤ片水多多| 操逼逼福利视频| 久久香蕉影院| 9精品久久| 超碰欧美COM| 久久久久久久免费A片国产成a人亚洲精∨品无码| 强奸乱伦AV网址| 国产精品99久久久www| 97超碰69| 亚洲男人天堂视频| 成人国产视频在线观看| 国产男人又猛又粗又爽| 屌妞视频久久久久久久| 97在线/亚洲| a片久久久久久久久久久久 | av天堂影视中文在字幕在线中文| 久草资源欧美在线视频| 欧美日韩不卡传媒| 久久人体一区二区| 人人妻人人爽一区二区三区| 97精品在线| 国产大片精久久久久久| 97超碰伊人| 91欧洲国产成人久久精品网站| 日韩av电影成人在线| 人人操人人叉人人插人人| 国产久久一区二区午夜| 97欧美色综合| 欧美精品宗合| 九九热精品视频在线观看| 青青操在线亚洲视频观看欧美在线| 青青操日韩| 欧美一区二区一级岛国大片| 91蜜臀熟女| AV在线播放网址| 欧美不卡在线一区二区| 日韩乱码Av| 粉嫩久久久极品| 亚洲欧美国产va在线播放频| 操人91| 青青草在线视频欧美| 嗯嗯不要 视频| 国产操伦| 国产精品密臀网在线观看| 久久啊啊| 五月婷婷影院| 9久久精品| 91狠狠综合久久久| 在线电影亚洲色图| 操逼不卡中文字幕| 少妇内射www在线观看视频| 亚洲综合电影| 神马福利久草| 亚洲加勒比久久日本道| 天堂九九九九九九九九九| 欧美后入式| 乳欲人妻办公室奶水| 日韩AV中文字幕电影| se..亚洲欧美| 中文字幕在线播放2中文字幕在线观看2| 国产欧洲精品亚洲午夜拍精品| 国产亚洲精品精AV.| 亚洲欧美天堂在线| 超碰免费人妻人人| 午夜啊啊啊| 色婷婷六月丁香七月婷婷| 人人妻人人操人人乐| 蜜臀99久| 天天操天天射青青草| 校园春色 欧美| 欧美日韩丝袜| 97操| 日韩熟女精品无码专区一区二区 | 欧美日韩 强奸乱伦| 久久国模av| 在线国产福利网址导航| 九九九久| 激情综合五月婷婷| 懂色Av| 少妇同性| 欧美经典一区二区三区| 亚洲清纯唯美| 丁香五月社区| 韩国三级一线观看久| 久久精品视频28| 一个国产在线综合网站| 欧美在线综合| 丁香五月av| 国产内射爽爽大片| 国产美女激情| 亚洲欧美激情在线视频| 亚洲色宗合| 操死我干死我| 国产高清精品福利| 欧美亚洲中文| 亚洲人久久久网| 91人妻Pr| 国产美女在线精品免费看| 久操在97| 91精品91久久久中77777| 天天看天天日天天操| 日韩中文字幕av在线播放| 久久国产热视频97电影| 国产午夜精品一区二区三区牛牛| 亚洲射综合网| 国产欧美日韩在线不卡第一页| AV女资源| 嫩草影院永久在线制服丝袜| 人妻久久久| 一个人免费视频观看在线WWW | 亚洲。日韩。欧美| 欧美成人一区二区三区在线播放| 久久超碰com| 99热导航| 人妻嗯啊啊在线播放| 一级成人性爱| 综合亚洲欧美| 91色综合色| 亚洲色图91欧美日韩| 九月丁香婷婷色| 97亚洲在线| 亚洲熟女乱色一区二区三区久久久| 亚洲人人操| 草草影院最新网址| 亚洲欧美另类小说| 人人操人人精品影片| 在现视频女上位好爽| 午夜福利免费精品视频| AA级电影三区| 免费试看60秒| 天天躁日日躁狠狠狠躁| 91久久国产综合精品| 男人夜色天堂ss| 国产AV久久野战精品| 97视频在线看| 日本道人妻久久久在线不卡色视频| caopeng97人妻| 六月色婷婷| 近亲乱伦一区二区| 日韩免费大片一级播放| 91天天综合网| 综合夜夜| 美女91| 人妻少妇精品无码专区二区密桃| 亚洲欧美一区二区不卡视频播放 | 日本精品高清一二区一本到| 操逼www.| 国产操逼逼网| 国产精品亚洲一级av第二区| 免费黄色片。| 国产精品麻豆免费视频| 亚洲AV成人精品网站在AV| 国产乱子伦一区二区三区在线观看| 黑人干亚洲| 黑人精品久久97| 夜夜综合| 欧美激色| 人乳av| 久久久国产护士丝袜美腿一| 欧洲亚洲人人爽爽视频| 久久亚洲日韩国产欧| 理论久久婷婷网 8| 人人妻人人澡人人爽久久av| 久久中文字幕人妻熟av女蜜柚| 一摸二插三插| 97欧美综合网| 国产精品成人午夜福利| 97欧美精品| 国产高清成人免费视频| 呦呦影院| 日本熟女中文字幕一区| wwwcaobibi| 免费看日产一区二区三区| 超碰91在线| 偷拍伦理视频| 天堂麻豆天美| 97视频新免费| 熟女熟妇一区二区三四区| 久久 精品| 乱操乱伦AV| 色天使亚洲综合在线观看| 色久桃花影院在线观看| 插欧洲美女欧美精品| 丁香色五月 97干| 国产馆极品诱惑| 99色婷婷中文字幕乱色| 俺去啦自拍| 大香蕉综合网| 日韩99精品视频综合区 | 青青五月天| 国内毛片热久久思思热| 8050无码八戒| 国产suv精品一区二区四| 天天综合网1| 99999亚洲另类| 一起草三级AV电影在线观看 | 又大又白奶子| 久久99精品国产| 91精品导航| 精品久久无码午夜福利| 色五月激情网| 蜜臀AV成人精品蜜臀| 日韩天天综合| 欧美日韩啪啪电影| 九九无码| 色偷综合| 亚洲美女av无码| 一级A片女人高潮叫床| www.狠狠干.coom| 久湿久久| 国产v片在线免费观看| 国产精品久久久久久久久AV大片| 天天看少妇| 九九久久国产精品怡红院| 亚洲在线网站| 亚洲1区| 精国久久一区二区三区98| 91人妻在线视频| 在线看免费无码AV天堂的| 欧美亚洲20p| 九九九久久久W精品| 欧美黄色大片在线观看| 伊人青青一区成人视频在线观看区| 在线中文AV| 黄片视频观看| 日韩AV电影网站| 久久大香蕉97| 色综合久久88色综合久久天天| 国产婷婷一区| 亚洲国产精品久久AV| 2018色综合天天操| 劲爆欧美人妖三区91| 国产黄色视频久久| 欧插网站| 国产精品播放| 天天综合91在线| 综合网亚洲在线| 久久久久久国产精品免费网站| 欧美色66| 亚欧高清| 综精品久久久aaaa| 天天综合网网欲色| 91neishe| 97色亚洲| 后入内射蜜桃臀| 精品亚洲| 蜜桃臀 后入 一区 二区 三区 在线| 四虎影视欧美| 亚洲 综合 欧美| 久久精品28| 婷色五月天| 综合色91| 特污免视频| 女人天堂av在线播放| 91天天日| 国产成久久综合片| 丰满搜索结果 -第18页- 久久高清无码| 中日韩一区二区三区欧美| 老熟女91av| 无码人妻一区二区三区色欲aⅴ| 九九九九九九亚洲| 亚洲精品97| 蜜桃av综合网发布| 极品少妇久久久久| 精品超碰中文在线| 日本成a人v网站在线观看| 欧美色997| 天堂69亚洲精品中文字| 啊啊啊好舒服视频在线观看| 丁香五月综合| 九月伊人中文字幕| 久视频在线观看| 91深夜夜| 亚洲第二页| 亚洲一区二区三区久久 亚洲一区二区| 熟女人妻一区二区三区| 青春草A| 亚洲精品啪视频| 日日躁天天躁狠狠躁| 婷婷久草一区二区三区| 日韩免费三级黄片电影| 欧美人妻少妇| 试看福利| 丁香五月天堂网| 日韩无码人妻| 精品人妻一区春色| 五月激情天| 人人干黄色| 色香网| 丁香五月天婷婷姐| 国产精品宅男免费| 激情文学88| 亚洲天堂美臀在线| 97久久精品亚洲| 波多野结衣被操50分钟免费视频 | 98一区二区精品| 成人一级性爱| 久久精品熟妇丰满人妻99| 一区,二区,三区视频| 中文字幕 国产 精品| 天天草天天日| 欧美图片校园春色| 91麻豆天美传媒HD| 91粉芽高清在线一区二区| 一区二区免费电影久久| 青草一区二区| 国产精彩女在线观看视频| 欧美另类色图片| 国产区性爱在线视频秋霞豆| 99久久无码| 又黄又硬又粗又长国产视频| 极品粉嫩少妇视频| 一二三四免费视频| 亚洲av乱伦色图网站| 色欲久久久久综合网| 极品人妻少妇综合| 尤物视频偷拍免费| 男人的天堂VA在线| 丰满少妇一区二区三区四区观看| 第一高清av中文字幕| 国产极品精品美女视频| 久久91| 国内毛片四区| 狠狠爱夜夜干| 欧美 综合 亚洲| 97精品久久久久久久| 久久国产三区| 激情婷婷五月天| 亚洲av淫乱| 韩国成人精品久久久免费看| 亚洲 小说 欧美 激情 另类| 校园春色五月天| 午夜噜噜噜| 加勒比av网| 亚洲男人综合网| WWW.加勒比人妻一区不卡.com| 欧美黑人猛交春色影视大全| 国产毛片精品一区二区色欲黄A片| 91成人久久| 国产麻豆福利av在线播放| 免费一级性爱久久| 亚洲国产精品99久久久| a片 xxxx受爽视频| 蜜臀久久99精品久久久电影| 欧美日韩传媒| 91精品老女人| 国产在线视频午夜精华在| 2017天天拍大香蕉| 好吊色综合| 91亚洲欧洲| 91香蕉国产尤物视频| 97综合久久| 国产白丝精品在线观看| 秋霞色色影院| 国产亚洲欧美每日在线| www亚洲免费| 日韩无码a片| 艹比视频国产精品| 久久肏大逼| av资源在线观看少妇| 成人午夜视频免费播放| 一起草AV| 久久9久9久99久9久9| 欧美亚男人的天堂| 撸撸成人在线视频| 粉嫩久久久久| 中文字幕青青草| 青草成人免费视频一COm| 少妇久久久久久| 伊人网免费视频| 午夜超爽| 六十路日本| 91 刺激在线| 欧美性战999| 九九九九九九视频| 亚洲色婷婷综合久久久久中文| 另类欧美综合| 国产精品高潮呻吟av久久4虎| 国产精品ⅴ无码大片在线看.| 岛国AB视频| 亚洲操逼网| 精品人妻1237| 欧美91久久久久| 密臀在线一区尤物| 欧美日韩性爱电影在线| 国产亚洲精品第一最新| 69超碰综合| 中文字幕十五区| 在线视频资源| 熟妇xxxxx性春色| 97任你吞精| 久久久工口| 色眯眯av| 亚洲国产精品久久AV| 亚洲国产奇米影视久久| 992这里有精品| 四季AV一区二区凹凸精品小说| 日韩在线观看AV| 手机在线免费看的av| 中国国国产一级特黄毛片| 天天色悠悠激情| 亚洲天天精品| 97精品一区二区视频| 午夜福利视频在线一区| 不卡人妻少妇精品毛片一区23区视频| 久久精品成人一区二区三区蜜臀| 丁香九月婷婷| 囯产乱伦一区二区三女 | 日韩有码一区三区| 91在线/欧洲| 人妻色偷色噜| 久久久久9999| 97超碰这里只有精品| 91操熟女| 婷婷五月激情综合| 国产情色在线| 乱伦熟妇一区二区| 天天摸,夜夜摸| 亚洲精品黑丝| 伊人黄色片| 在线观看十八禁| 久草看看看| 福利在线观看一区二区| 少妇六月天| 中文字幕乱亚洲美女精品一区| 日韩欧美国产高清视频| 97自拍一区| 日韩三级在线观看网站| 天天射影院| 日本高清视频在线观看黄已三辽| 国产中文精品一区二区在线观看| 熟妇视频一区二区三区在线观看| 九t超碰| 操人91| 超碰97综合网| 熟女人妻一区二区三区| 试看60秒| 亚洲精品人妻在线| 精品一区二区三区四区女| 电家庭影院午夜69久久夜色精品国产69乱| 色丁香久久| 久9爱精品| 亚洲 欧美 手机在线观看| 亚洲熟女一区| 最新三级网址| 久久同城AV| 韩国成人精品久久久免费看| 性色av一区二区| 黄色人人| 91精品久久久久久77777| 国产日逼视频| 大肉棒导航| 乱伦图一区| 天天草AV| 成人av动漫在线观看| 91M一社| 69精品人人人人| 揉揉日日日日| 欧美色三级片91| 亚洲精品国产精品成人| 日本女厕偷拍| 中国少妇XXXX做受| www.男人天堂| 91精品久久综合熟女| 精品在线78| 久久婷婷一区二| 久久只有精品| 欧美亚洲美少妇一区二区| 日日噜噜夜夜狠狠视频无| 亚洲污污网站| 日韩一级片| 激情欧美97| 国产白领连续中出在线观看| 丁香九月 婷婷| 久久精品成人一区二区三区蜜臀| 午夜福利视频在线一区| 人妻91少妇| 国产久久视频| 中文字幕精品日韩中文字幕| 国产日韩中文字幕欧美| 成人夜夜爽| 国产a片操逼| 91色人| 欧美三级不卡| 亚洲国产成人福利在线观看| 久久久性少妇| 91女在线观看| 看黄片视频免费| 大香蕉狠狠爱| 在线视频五十市| 免費黃色視頻觀看一| 久操电影| 99热18这里只有精品| 成人五月香网在线| 欧美1区二区三区公司| 欧美亚洲清纯| 丝袜综合| 国产免费久久久久| 99re免费视频精品全部| 国产AB视频| 嗯嗯啊啊操死我| 亚洲综合一区二区| 四虎精品永久在线播放| 久污| 欧美色66| 大香蕉AV在线| 一区二区三区成人高清视频| 97精品一区二区三区免费| 久久m| 天天影视色香色欲| 天天色综亚洲91污| 日韩成人性日韩成人性爱视频在线免费观看 | 综合色图区| 亚洲精品成人动漫在线| 深夜视频| 日本不卡一区二区三区| 国产精品制服丝袜中文字幕日韩一区二区三区| 丝袜美腿制服人妻二区中文字幕| 91天天看| 四虎影视精品| 香蕉色网| 一区二区三区日韩欧美| 超碰99在线| 日本欧美亚洲高清在线看| 91被操| 国产日韩久久| 欧美亚州综合网图片| 亚洲日韩少妇一道本视频| 人人手机欧洲亚洲国产人妻| 91在线无码精品秘 软件| 为用户提供免费看黄网址在线观看| 亚洲欧美在线丝袜| 九99久久| 国产视频第2页| 青春草A| 色精品极品| 久久精品国产精品亚洲艾通辽熟妇 | 日产操逼| 火箭成精品视频884必出精品| 欧美在线|亚洲| 夜夜免费视频| 另类视频在线| 天美欧美国产| 撸撸成人在线视频| 麻豆性爱视频在线播放| 伊人久久国产免费观看视频| 少妇二级| 日韩免费人妻色情网站| 这里只有精品久久| 日日夜夜狠狠| 狠狠操狠狠爱| 这里有精品| 91五月天| 水澄无码AV| 91oumei| 色噜噜综合在线| 情侣开房子拍 日韩无码 女的很漂亮| av中文在线| 长长久久免费视频| 69超碰综合| 口爆综合网| 成 人 影视 一区 二区 三区 四区 | 四虎影院成年人片| 免费黄色片子| 一级黄色影片| 97天天爽| 青青草在线视频人人想人人上| 欧亚乱色熟一区二区三四区| 色盈盈影院| AV在线资源| 久久6热精品99视频| 东方亚洲在线操逼天堂| 极品一区二区三区免费| 亚洲第一视频 欧美风情 日韩| 97资源站国产精品| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 亚洲免费人妻在| 九九aV| 综合色图亚洲欧美| 亚洲日本男人天堂网| 国产精品熟女九九九| 久久一本大香蕉| 久9久9久9久9久9久9 | 狠狠躁日日躁夜夜躁A| 久久久久久裸体| 欧美色图欧美| 黄片视频观看| 思思热久久成人| 日本黄 R色 成 人网站| 超碰人人乐97| 久久大陆| 91bbbbbb| 一级AV性爱| 亚洲精品a人片在线观看视| 91人妻爽爽人人做人人澡| 夜夜操夜夜爽夜夜高潮| 色亚州人久干视频在线观看免费版| 久久后入制服| 国产乱伦视频污| 美女操逼福利视频| 日韩另类色图| 九七毛片九九毛片| 91丝袜在线播放| 中文字幕一区二区三区高清| 天堂种子在线www网资源| 偷拍网站久久男女男| 亚洲色图伊人网| 99热在线播放| 日韩国产乱子伦App| 婷婷尹人大香蕉免费| 日本人妻天堂网站在线播放| 日本幼女18+| 日本一区二区三区午夜观看| 国产做?爰片久久毛片?片美国| 97色在线观看| 日韩电影免费网站麻豆视频| 欧美日韩在线视频网站| 亚洲一区二区性爱电影| 夜夜高潮夜夜爽| 久久97视频| 17c在线成人免费A片观看| 伊人成人中文字幕久久网| 少妇色综合| 一本色道无码DVD中文字幕| 无码伊人久久大杳蕉中文无码| 欧美性暴力猛交XXXX| 蜜臀久久久99久久久久 | 后入美女国产| 四季av一区二区凹凸精品小说| yw尤物av无码点击进入麻豆| 婷婷在线精品| 久久精品人妻一区二区| 91国产操逼视频| 日韩精品国产精品五码一区二区| 另类视频在线| 无码直播久久久| 色噜噜综合在线| 久久有码视频| 国产三区免费在线观看| 夜夜久久| 亚洲婷婷综合网| 又大又白奶子| 综合亚洲欧美| 欧美综合区| 欧美一品道| 欧洲亚洲国产综合在线| 久久久久久久久久久97| 一本色道人妻久久| 亚洲欧洲小说图片视频 | 久久久久久久久久9| 夜草网站| 亚洲αv一区二区三区| 九九综合| 欧美国产有色电影| 在线天堂资源亚洲| 免费福利视频中文字幕| 欧美很很操视频| 久草色悠悠在线视频| 夜夜春夜夜操| 中文字幕五月婷婷免费| 狠狠操狠狠爱| 欧美 亚洲 综合 制服 另类| 囯产精品久久久久久久久久二区三区| 亚洲性爱电影| 青青草中文-久久青草精品一区二区三| 国模不卡一本二本三电影| 欧美,日韩,中文,另类| 成年人网站在线免费观看| 欧美网站免费| 啊啊啊啊啊在线视频| 久久久久久久| 亚洲黄色a级片| 男人的天堂2018.| 亚洲男人在线观看天堂| 浪人综合网| 久久综合精品一区二区三区| 亚洲国产97在线精品一区| 亚洲成人性爱网站在线播放| 欧美黑人猛交春色影视大全| 嫩草91| 眼镜人妻101.com| 久久久艹艹艹| 亚洲色电影在线| 日韩人成网站在线播放| 亚欧中文字幕在线视频| 91w欧美| 国产亚洲99久久精品| 天天影视网色欲色香| 尤物网址| 啊啊啊啊啊好大好舒服想要| 中文字幕后石码四区五区| 91九色在线| 大干人妻| 国产精品久久久久亚洲av| 欧美97在线观看| 国产肏逼网站| 精品人妻二区三区| 国产精品久久久久久久久久久久| 91丨九色丨43老版熟女| 91中出在线| 国产三级电影免费观看| 人妻无码一区二区三区久久99| 小日子操bb在线看| 亚洲三级网址久久最新| 国内毛片欧美香蕉精品| 九九九午夜| 人妻另类 专区 欧美 制服| 欧美精品四区| 青青在线视频日韩欧美| 天美AV片| 五月丁香激情四射| 青青国产精品在线| 中文字幕丰满子伦无码专区在线视频最新| 天天流夜夜操| 九九九九精品九九九九| 亚洲 欧美都市激情| 亚洲福利影院一区久久| 精品国产网站| 欧美性爱精品七区| 性色av一区二区| 国产高清在线观看欧美| 伊人少妇久久久| 欧美一区二区三区日韩| 天天欲望网| 九九热免费国产视频婷婷伊人| 97在线免费| 91人妻视频| 韩国一级AAA| 高清孕妇孕交 交孕妇| av资源在线观看少妇| 97超碰欧美精品| 超AV色女| 大香蕉黄色一级片免费看| 肉丝无码中文高清| 天天日天天爽| 国产无马在线| 老司机午夜福利视频一区二区| 另类一区| 好爽视频在线观看视频| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 亚州高清AV| 亚洲欧美激情另类色图| 国模私拍一区二区三区神乳| 91n免费处女| 国产 码在线成人网站| 日本操逼视频免费| 欧美色自拍| 亚洲 日韩 欧美 国产综合体| 在线αⅴ| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 九九色综合| 欧美一二三级精品在线| 91色伦| 天天日日本| 在线观看日韩av不卡| 国产一级高清免费观看| 操淫穴亚洲五月丁香| 加勒比大香蕉视频在线| 国产综合在线视频网站| 久久大香蕉97| 九九热视频这里只有精品| 8050午夜少妇无码| 激情综合网激情综合| 中精品一区二区三区| 亚洲色欲一区二区三区| av天堂手机版追回| 亚洲精品自拍| 国产9熟妇视频网站| 欧美夜色| 天综合网| 破苞ⅩXXX性无码动漫无码| 啪啪性爱免费视频| 揉揉揉夜夜| 欧美国产有色电影| 久久久噜噜噜久久久| 婷婷综合五月| 精品亚洲黄色片 国产精品导航一区二区| 97视频免费播放| 美女上床网站| 青青伊人久久| 伊人色综合超碰| 五月丁香亭亭| 91超碰人人操| 黄色免费网页无码| 国产一区二区免费福利片| 久久久久久久| 亚洲综合在线91| 人妻少妇久久| 色香伊人| 亚洲吊色| 欧美午夜色妇色鬼| 久久精品人体| 亚洲婷婷五月天| 无遮挡h肉动漫在线观看| 一牛影视成人片免费| 久久久精品91八戒| 亚洲av噜噜噜噜噜噜| 91色插| juliaann丝袜| 蜜臀99久久国产| 欧美瑟综合| 久久久久久免费电影| 丝袜色综合| 久操| 亚洲素人综合| 少妇高潮喷水无套久久久久久| 九九九九精品一区| 亚洲日韩少妇一道本视频| 歐美性天天| 91久久堂| 亚洲精品 欧美精品| 91爱看| 中国熟女91| 韩国嫰模上门援交视频| 九九九草| 欧美,日韩,中文,另类| 91中文字幕在线观看| 久久精品国产97欧美精品亚洲 | 国产精品夜夜| 亚洲日韩电影| 人人模人人看| 以及麻豆国产入口在线观看免费| 日韩在线欧美精品一区二区| 大香蕉色网| 色牛aV| 国产高清视频无码在线| 黄色片A级一区二区三区| 国产精品成人久久一区二区三区| 亚洲伊人久久综合97| 亚洲成人性爱网站在线播放| 2019久久久久久久久福利|